car*_*mon 4 c# wcf wsdl namespaces
我正在努力为我的C#枚举生成正确的WSDL命名空间,ContractNamespace
而不是使用属性装饰每个类型.
以下代码Person
在" http://www.mynamespace.co.za/ "中正确生成类型,但出于某种原因Gender
在不同的WSDL名称空间中," http://schemas.datacontract.org/2004/07/SomeOtherNamespace ".
我错过了什么?enums需要特殊处理吗?
[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
}
}
Run Code Online (Sandbox Code Playgroud)
在我的实际代码中,类型存在于外部生成的程序集中.使用自定义属性无法轻松修饰类型.ContractNamespace
如果它也适用于枚举,那将是完美的...
换句话说,以下工作,但进入代码生成过程将非常痛苦.
[DataContract(Namespace = "http://www.mynamespace.co.za/")]
public enum Gender
{
[EnumMember]
Male,
[EnumMember]
Female,
[EnumMember]
Other
}
Run Code Online (Sandbox Code Playgroud)
枚举是一种痛苦.您必须修饰枚举才能使ContractNamespace
属性生效.
[DataContract]
public enum Gender
{
[EnumMember]
Male,
[EnumMember]
Female,
[EnumMember]
Other
}
Run Code Online (Sandbox Code Playgroud)
应该看到您的类型出现在您想要的WSDL命名空间中.