[英]Adding Generated Code (wsdl generated) as DataContracts and DataMembers for another WCF service
我有WCF项目,它调用了另一个asmx Web服务。 当我将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服务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");
}
}
}
您可以使用文本模板转换工具包(T4或..tt文件)来读取属于项目的ASMX生成的文件,并通过添加[DataContract]
和[DataMember]
属性在另一个命名空间中以相同方式重新创建它们。
问候
我看到您从ASMX生成的PersonPay
类是[Serializable]
。
根据我的WCF专家JuvalLöwy所说, PersonPay
应该被序列化为WCF服务。
请尝试一下,然后告诉我们。
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.