想象一下,我有这个课程
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)”的最佳重载方法匹配具有一些无效参数
如何解决此而不创建其他命名空间? (我想避免类型转换)
答案 0 :(得分:2)
在生成WCF服务引用时,尝试指定与“CommonLibrary”不同的命名空间。
答案 1 :(得分:1)
我找不到时间尝试它,但是/ reference开关不应该这样做吗?我假设svcutil然后使用程序集中的类型而不是创建新类型...
根据这个我应该是对的:http://blogs.msdn.com/hoop/archive/2006/08/28/729242.aspx