【发布时间】:2012-01-14 11:44:35
【问题描述】:
我想在 .Net4 后端和 Silverlight 5 前端之间共享一个大型对象结构。我创建了两个适当类型的类库项目,并在 .Net 库中实现了我的对象结构,并链接到 SL 库中。在 Silverlight 客户端,我引用的是 Silverlight 类库。当我生成服务引用时,我已选中“在引用的程序集中重用类型”选项。但是,当我生成服务引用时,我发现仍在生成引用程序集中的类型。它只是某些类型,并且似乎主要是集合类型(归属于<CollectionDataContract>)。
我有一个具有许多属性的主对象,这些属性通常要么是List<MyTypeA>,要么在某些情况下是MyListTypeB,其中MyListTypeB 继承自List<MyTypeB>。似乎是类似于MyListTypeB 的类导致生成代理。这些都带有<CollectionDataContract> 的属性,并具有默认构造函数。
我还发现,即使我添加服务引用的项目具有对包含实体的其他 SL project 的引用,但当我更新服务时,直接对 dll 的新引用也正在添加到项目中。我不确定为什么会发生这种情况,或者它是否会导致服务代理生成混乱
有什么方法可以判断是哪些类/属性导致服务生成生成代理类?或者它是一个反复试验的案例,必须注释掉属性,直到它们没有被生成并在问题类上磨练?
【问题讨论】:
-
嗯。好的,我发现代理中生成的类实际上只是: System.Collections.ObjectModel.ObservableCollection
类型的类,并且通过使用带有 /ct 参数的 SLSvcUtil 生成代理可以防止生成这种类.但是在一个相当大的团队中工作,我不希望开发人员必须运行 slsvcutil。是否可以通过“添加服务引用”对话框实现此功能?
标签: silverlight wcf svcutil.exe service-reference