使用其他DLL中断添加WCF服务引用

时间:2010-10-01 11:50:04

标签: c# .net visual-studio-2008 wcf .net-3.5

我在第三方供应商的外部程序集中定义了以下类:

namespace ThirdParty.Vendor.Code
{
  [Serializable]
  [XmlInclude(typeof(Test1Data))]
  [XmlRoot(Namespace = "", IsNullable = false)]
  public abstract class DeviceTestData
  {
    protected DeviceTestData();
  }

  [Serializable]
  [XmlRoot(Namespace = "", IsNullable = false)]
  public class TestData : DeviceTestData
  {
    public TestData();

    public double DoubleValue { get; set; }
    [XmlIgnore]
    public bool DoubleValueSpecified { get; set; }
  }
}

我已将此程序集添加为名为“TestService”的WCF服务的引用,因此我可以编写使用这些类型的服务代码。这一切都很完美。

现在我有第二个项目需要添加对TestService的引用。添加引用工作正常,但是当我编写代码以使用引用的类型并尝试编译时,我得到以下错误:

The type or namespace name 'TestData' could not be found (are you missing a using directive or an assembly reference?)

所以我在第二个项目中添加了供应商的DLL作为参考,并添加了使用命名空间ThirdParty.Vendor.Code的指令,但现在我得到了:

Cannot implicitly convert type 'ThirdParty.Vendor.Code.TestData' to 'ServiceReference.DeviceTestData'

似乎没有引用第三方DLL,就不会生成所需的类,但是如果我添加引用,它们会以某种方式被引用两次。 WTF?

有人对如何修复/解决此问题有任何建议吗?

1 个答案:

答案 0 :(得分:1)

生成服务引用时,请确保已包含已引用数据协定的程序集,并选择“重用引用程序集中的类型”。