我有一个调用另一个asmx webservice的WCF项目。当我将asmx webservice添加到wcf Project时,它生成了一些类。现在我想将这些类作为DataContract和DataMembers暴露给我的WCF服务。我真的希望通过多次重复来实现这一目标。
到现在为止我试过了 当我将生成的类作为属性(DataMember)添加到现有DataContract时,调用WCF服务的客户端将成员视为 variableName 字段。我真的不希望看到这些字段是私有变量但我想看到真正的属性。
WCF项目合同看起来像这样
[DataContract]
public partial class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public PersonPay PersonPay {get;set;}
}
wsdl在asmx web service 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");
}
}
}
答案 0 :(得分:0)
您可以使用文本模板转换工具包(T4或..tt文件)来读取属于您项目的ASMX生成的文件,并在添加[DataContract]
和{{1的情况下在另一个命名空间中以相同的方式重新创建它们属性
此致
答案 1 :(得分:0)
我看到您在ASMX中生成的PersonPay
课程为[Serializable]
。
根据我的WCF Guru,JuvalLöwy,PersonPay
应该像WCF服务一样被序列化。
试试看,然后告诉我们。
此致