代码之家  ›  专栏  ›  技术社区  ›  Jagmag

WCF数据协定的命名空间问题/设计问题?

  •  1
  • Jagmag  · 技术社区  · 14 年前

    我的应用程序中有多个服务。我有一个需要在多个服务中使用的数据协定。

    例:班级 myCommonClass service1 service2

    为此,在服务级别,我有一个 MyApplication.Common 库和此库包含 . 因为我的两个部门都提到 MyApplication.通用

    我的客户端应用程序对两个都有服务引用 服务1 服务2 . service1.myCommonClass service2.myCommonClass

    在my Reference.cs(通过svcutil生成)中,两个类的名称空间都是 相同的

    System.Runtime.Serialization.DataContractAttribute
    (Name="MyCommonClass", Namespace="http://A.B.MyCommonClassNamespace")])
    

    但是,这两个都是分开的 reference.cs 参考.cs 由于是两个单独的服务引用的一部分而不同。

    因此,在我的客户机应用程序中,它们显示为两个完全不相关的类。

    问题1* :有什么方法可以向我的客户端应用程序表明 服务2.myCommonClass 本质上是同一个阶级吗?

    * :我在这里的设计有什么内在的问题吗 在这个问题上?

    1 回复  |  直到 14 年前
        1
  •  1
  •   softveda    14 年前

    不,你的设计很好。不要从Visual Studio添加服务引用,而是在命令提示符下使用svcutil生成代理类。创建类库项目并将生成的.cs文件添加到其中。您可以创建一个批处理文件,并在预构建步骤中运行它。
    如下所示,使用svcutil从服务dll(实现两个服务的dll)在单个文件中生成代理类

    svcutil.exe /t:metadata "PATH\service1.dll" "PATH\service2.dll"  
    svcutil.exe /t:code *.wsdl *.xsd /o:Proxy.cs