有什么方法可以避免为使用多个域时已经引用的类型生成代码?
让我解释。
我有一个用于 silverlight 应用程序的应用程序基础设施。这个基础设施包包括服务器端的 3 个 (RIA) 域服务(身份验证、日志记录、服务发现) - Infra.Web.dll和一个 Silverlight DLL - ClientInfra.dll,它在应用程序启动时实现用户身份验证和一些其他基类(像 BaseApp 和 BaseView),而Infra.Web.dll被定义为ClientInfra.dll的 WCF RIA 服务链接。
现在我正在开发一些演示 silverlight 应用程序来测试我的基础设施。我创建了
DemoApp.Web至极 引用 Infra.Web.dll(为了获得基础设施服务)
和2个silverlight项目:
DemoApp.Data将 DemoApp.Web.dll定义为 WCF RIA Services Link 以获取生成的代码并引用ClientInfra.dll
DemoApp是引用ClientInfra.dll的实际 silverlight 应用程序
问题是,当我尝试使用 silverlight 应用程序中的 RIA 服务之一时,我遇到了一个错误,即域服务类是在ClientInfra.dll和 DemoApp.Data中定义的。据我了解,问题是来自Infra.Web.dll的代码已生成两次:第一次为ClientInfra.dll,第二次为DemoApp.Data。
有什么方法可以避免为已经被引用的类型生成代码,就像我的情况一样, ClientInfra.dll已经生成了基础设施服务,因此不需要在DemoApp.Data中再次生成它?
我会尽量让我的问题更简单。如何避免已经为我引用的 dll 生成的类型的 ria 服务类型生成(在 silverlight 中)?类型生成重复导致错误 CS0433 在 2 个不同的 dll 中定义了相同的类型
我发现了一些有趣的事实。如果我 直接从DemoApp (silverlight 应用程序项目)引用ClientInfra.dll ,那么在ClientInfra.dll中已经生成的数据类型不会再次生成。但是,如果我 从DemoApp.Data引用ClientInfra.dll ,我确实会生成重复类型代码,并带有编译警告,即在引用的 dll 和生成的代码中都定义了相同的类型。