【问题标题】:Adding WCF service reference with additional DLL breaks添加带有额外 DLL 中断的 WCF 服务引用
【发布时间】:2011-04-19 19:48:48
【问题描述】:

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

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 的引用,就不会生成所需的类,但是如果我添加引用,它们会以某种方式被引用两次。什么鬼?

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 试过了,还是得到“无法隐式转换类型...”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2014-05-08
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多