我在第三方供应商的外部程序集中定义了以下类:
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?
有人对如何修复/解决此问题有任何建议吗?
答案 0 :(得分:1)
生成服务引用时,请确保已包含已引用数据协定的程序集,并选择“重用引用程序集中的类型”。