WCF 生成不需要的部分 class
WCF generates undesired partial class
在一个单独的 project/solution 中,我有一个名为 CompleteField
的 class,它在多个 WCF projects/solutions 中被引用。
WCF 从 CompleteField
生成部分 class,这是不需要的。
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.0.1")]
[System.Runtime.Serialization.DataContractAttribute(Name="CompleteField", Namespace="http://schemas.datacontract.org/2004/07/Common.Web.Models")]
public partial class CompleteField : object
{
//...
}
使用属性 KnowType
我想我可以省略这个行为(因为我过去已经这样做过)。
在我下面CompleteField
class
[DataContract]
[KnownType(typeof(ValidatorType))]
[KnownType(typeof(ObjectType))]
[KnownType(typeof(ICompleteField))]
public class CompleteField : ICompleteField
{
[DataMember]
public string Name { get; set; }
[DataMember]
public ObjectType Type { get; set; }
}
public interface ICompleteField
{
string Name { get; set; }
ObjectType Type { get; set; }
}
[DataContract]
public enum ValidatorType
{
[EnumMember]
//...
}
[DataContract]
public enum ObjectType
{
[EnumMember]
//...
}
public CompleteField(ObjectType type)
{
this.Type = type;
}
}
有谁知道为什么 WCF 仍然生成部分 class 这个?
生成部分class是因为我在CompleteField
中使用了Constructor。
在一个单独的 project/solution 中,我有一个名为 CompleteField
的 class,它在多个 WCF projects/solutions 中被引用。
WCF 从 CompleteField
生成部分 class,这是不需要的。
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.0.1")]
[System.Runtime.Serialization.DataContractAttribute(Name="CompleteField", Namespace="http://schemas.datacontract.org/2004/07/Common.Web.Models")]
public partial class CompleteField : object
{
//...
}
使用属性 KnowType
我想我可以省略这个行为(因为我过去已经这样做过)。
在我下面CompleteField
class
[DataContract]
[KnownType(typeof(ValidatorType))]
[KnownType(typeof(ObjectType))]
[KnownType(typeof(ICompleteField))]
public class CompleteField : ICompleteField
{
[DataMember]
public string Name { get; set; }
[DataMember]
public ObjectType Type { get; set; }
}
public interface ICompleteField
{
string Name { get; set; }
ObjectType Type { get; set; }
}
[DataContract]
public enum ValidatorType
{
[EnumMember]
//...
}
[DataContract]
public enum ObjectType
{
[EnumMember]
//...
}
public CompleteField(ObjectType type)
{
this.Type = type;
}
}
有谁知道为什么 WCF 仍然生成部分 class 这个?
生成部分class是因为我在CompleteField
中使用了Constructor。