添加c#属性到wsdl.exe生成属性
本文关键字:属性 exe 添加 wsdl | 更新日期: 2023-09-27 18:03:38
我有一个通过wsdl.exe自动生成的类,我需要添加[system . xml . serializize . xmlignoreattribute ()]属性到其中一个属性,但我不能直接修改类,因为它不时地重新生成。
有什么办法可以做到吗?我已经尝试寻找解决方案与继承,部分类和反射,但没有运气。由于客户的限制,我不得不使用。net Framework 2.0。
(关于为什么我需要在这里这样做的更多细节:防止DateTime值反序列化时的时区转换,我在部分类中添加了字符串属性)
编辑:请求的代码片段如下所示:
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://common.ws.model.plx.ids.it/")]
public partial class publication {
private System.DateTime dateFromField;
//[System.Xml.Serialization.XmlIgnoreAttribute()] I would like to add this
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public System.DateTime dateFrom {
get {
return this.dateFromField;
}
set {
this.dateFromField = value;
}
}
///// This method has been moved in the other partial class
//[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, ElementName = "dateFrom")]
//public string dateFromString
//{
// get
// {
// return XmlConvert.ToString(dateFrom, XmlDateTimeSerializationMode.RoundtripKind);
// }
// set
// {
// dateFrom = DateTimeOffset.Parse(value).DateTime;
// }
//}
}
您可以使用postsharp动态添加属性的缺失属性。看一下如何使用PostSharp属性注入属性。
它展示了如何将XmlIgnore属性应用于每个公共属性,但是您可以更改方面代码以在您的情况下具有不同的行为。