首页 文章

将生成的代码(生成的wsdl)添加为另一个WCF服务的DataContracts和DataMembers

提问于
浏览
1

我有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 回答

  • 0

    您可以使用Text Template Transform Toolkit(T4或..tt文件)来读取属于您项目的ASMX生成的文件,并通过添加 [DataContract][DataMember] 属性在另一个命名空间中以相同的方式重新创建它们

    问候

  • 0

    我看到你从ASMX生成的 PersonPay 类是 [Serializable] .

    根据我的WCF Guru,JuvalLöwy, PersonPay 应该序列化为WCF服务 .

    试试吧,告诉我们 .

    问候

相关问题