【发布时间】:2014-10-25 18:52:17
【问题描述】:
我正在努力使用ContractNamespace 为我的 C# 枚举生成正确的 WSDL 命名空间,而不是使用属性来装饰每种类型。
以下代码在“http://www.mynamespace.co.za/”中正确生成了Person 类型,但由于某种原因,Gender 位于不同的 WSDL 命名空间“http://schemas.datacontract.org/2004/07/SomeOtherNamespace”中。
我错过了什么?枚举需要特殊处理吗?
[assembly: ContractNamespace("http://www.mynamespace.co.za/", ClrNamespace = "SomeOtherNamespace")]
namespace SomeOtherNamespace
{
public class Person
{
public int Age { get; set; }
public Gender Gender { get; set; }
}
public enum Gender
{
Male,
Female,
Other
}
}
在我的实际代码中,类型存在于外部生成的程序集中。这些类型不能轻易地用自定义属性修饰。 ContractNamespace 如果它也可以用于枚举,那将是完美的......
换句话说,以下工作,但进入代码生成过程会非常痛苦。
[DataContract(Namespace = "http://www.mynamespace.co.za/")]
public enum Gender
{
[EnumMember]
Male,
[EnumMember]
Female,
[EnumMember]
Other
}
【问题讨论】:
标签: c# wcf namespaces wsdl