使用服务时如何避免冲突? (.NET C#)

时间:2009-07-27 14:25:12

标签: c# .net wcf web-services namespaces

想象一下,我有这个课程

 namespace CommonLibrary
 {
     public class Report()
     {
         public DateTime Begin { get; set; }
         public int Count { get; set; }
     }
 }

这是WCF服务方法的返回类型。当我使用svcutil.exe时,它会从元数据中重新生成类:

 namespace CommonLibrary
 {
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="TrafficProblemReport", Namespace="http://schemas.datacontract.org/2004/07/Indica")]
public partial class TrafficProblemReport : object, System.Runtime.Serialization.IExtensibleDataObject
{

    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

    private System.DateTime BeginField;

    private int CountField;

    [System.Runtime.Serialization.DataMemberAttribute()]
    public System.DateTime Begin
    {
        get
        {
            return this.BeginField;
        }
        set
        {
            this.BeginField = value;
        }
    }

    [System.Runtime.Serialization.DataMemberAttribute()]
    public int Count
    {
        get
        {
            return this.CountField;
        }
        set
        {
            this.CountField = value;
        }
    }
}
 }

但它与CommonLibrary定义冲突。当我尝试将Webservice方法结果(Report)传递给CommonLibrary的方法时,我遇到了编译错误:

  

错误4“CommonLibrary.ClassName.MethodName(CommonLibrary.Report)”的最佳重载方法匹配具有一些无效参数

如何解决此而不创建其他命名空间? (我想避免类型转换)

2 个答案:

答案 0 :(得分:2)

在生成WCF服务引用时,尝试指定与“CommonLibrary”不同的命名空间。

答案 1 :(得分:1)

我找不到时间尝试它,但是/ reference开关不应该这样做吗?我假设svcutil然后使用程序集中的类型而不是创建新类型...

根据这个我应该是对的:http://blogs.msdn.com/hoop/archive/2006/08/28/729242.aspx