我有WCF项目调用另一个asmx webservice . 当我将asmx webservice添加到wcf Project时,它生成了一些类 . 现在我想将这些类作为DataContract和DataMembers暴露给我的WCF服务 . 我真的希望通过多次重复来实现这一目标 .
到现在为止我尝试了当我将生成的类作为属性(DataMember)添加到现有DataContract时,调用WCF服务的客户端将成员视为 variableName Field . 我真的不希望看到这些字段是私有变量但我想看到真正的属性 .
WCF项目 Contract 看起来像这样
[DataContract]
public partial class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public PersonPay PersonPay {get;set;}
}
wsdl从asmx web服务wsdl生成wcf项目中的代码
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
public partial class PersonPay : object, System.ComponentModel.INotifyPropertyChanged {
private double salaryField;
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public bool Salary{
get {
return this.salaryField;
}
set {
this.salaryField= value;
this.RaisePropertyChanged("Salary");
}
}
}
2 回答
您可以使用Text Template Transform Toolkit(T4或..tt文件)来读取属于您项目的ASMX生成的文件,并通过添加
[DataContract]
和[DataMember]
属性在另一个命名空间中以相同的方式重新创建它们问候
我看到你从ASMX生成的
PersonPay
类是[Serializable]
.根据我的WCF Guru,JuvalLöwy,
PersonPay
应该序列化为WCF服务 .试试吧,告诉我们 .
问候