Silverlight应用程序中的RIA服务代码生成

时间:2012-12-31 13:12:50

标签: c# silverlight ria domainservices

有没有办法避免在使用多个域时已经引用的类型生成代码?

让我解释一下。


我有一个应用程序基础设施用于Silverlight应用程序。此infra软件包包括服务器端的3(RIA)域服务(身份验证,日志记录,服务发现) - Infra.Web.dll 和silverlight dll - ClientInfra.dll 在应用程序启动时实现用户身份验证和其他一些基类(如BaseApp和BaseView),而 Infra.Web.dll 被定义为 ClientInfra.dll 的WCF RIA服务链接

现在我正在开发一些演示版Silverlight应用程序以测试我的基础设施。我创建了

DemoApp.Web ,参考 Infra.Web.dll (以获取infra服务)

和2个silverlight项目:

DemoApp.Data ,将 DemoApp.Web.dll 定义为WCF RIA服务链接,以获取生成的代码并引用 ClientInfra.dll

DemoApp 这是引用 ClientInfra.dll

的实际silverlight应用程序

问题是,当我尝试使用silverlight应用程序中的一个RIA服务时,我遇到了一个错误,即在 ClientInfra.dll 中都定义了域服务类。 DemoApp.Data 即可。据我所知,问题是来自 Infra.Web.dll 的代码已生成两次:首先是 ClientInfra.dll ,第二次是 DemoApp.Data < /强>

是否有任何方法可以避免代码生成已经完全注入的类型,例如 ClientInfra.dll allready已经生成了infra服务,因此无需再次在 DemoApp.Data

我会尝试让我的问题更简单。如何避免已为我引用的dll生成的类型的ria服务类型生成(在silverlight中)?类型生成重复导致错误CS0433,相同的类型在2个不同的dll中定义

我发现了一些有趣的事实。如果我直接从 DemoApp (silverlight应用程序项目)引用 ClientInfra.dll ,而不是 ClientInfra.dll中生成的数据类型不再生成。但是,如果我从 DemoApp.Data 引用 ClientInfra.dll ,我确实会获得重复类型代码生成,并带有编译警告,在引用的dll和在生成的代码中。

1 个答案:

答案 0 :(得分:0)

我有类似的基础架构,但是我使用SOAP公开DomainServices并使用其他应用程序中的服务,所以,我应该对你的项目做同样的事情。