生成Silverlight服务引用 - 如何分辨导致生成代理类的原因

时间:2011-12-06 21:42:39

标签: silverlight wcf svcutil.exe service-reference

我有一个大的对象结构,我想在.Net4后端和Silverlight 5前端之间共享。我已经创建了两个相应类型的类库项目,并且我的对象结构在.Net库中实现,并链接到SL库中。在Silverlight客户端,我引用了Silverlight类库。当我生成服务引用时,我已经选中了#34;重用引用程序集中的类型&#34;。但是,当我生成服务引用时,我发现仍在生成引用程序集中的类型。它只是某些类型,并且似乎主要是集合类型(归因于<CollectionDataContract>)。

我有一个主要对象,它有许多属性,通常是List<MyTypeA>,或者在某些情况下是MyListTypeB,其中MyListTypeB继承自List<MyTypeB>。它似乎是类似于MyListTypeB的类,它们导致代理生成。这些都归因于<CollectionDataContract>并且具有默认构造函数。

我还发现即使我添加服务引用的项目也引用了包含实体的其他SL 项目,当我更新服务时直接向dll更新新引用也被添加到项目中。我不确定为什么会发生这种情况,或者它是否会导致服务代理生成混乱

有没有办法告诉哪些类/属性导致服务生成生成代理类?或者,如果属性没有被生成并且在问题类中磨练,那么它是否需要注释掉属性?

1 个答案:

答案 0 :(得分:0)

我现在已经了解了svcmap文件的使用,并更新了CollecitonMappings元素以包含我的集合类型,如下所述:

http://mostlydevelopers.com/blog/post/2009/12/14/Configure-WCF-Service-ndash3b-Reuse-Collection-Types-Issue.aspx

svcmap功能如此无证,似乎有点不寻常。

我能够在svcmap文件中添加类似于以下内容的条目:

 <CollectionMappings>
  <CollectionMapping TypeName="MyNamespace.MyType" Category="List" />
 </CollectionMappings>

然后当我更新服务引用时,不会生成代理集合。