繁体   English   中英

XSD生成的类的c#ToString方法

[英]c# ToString method for XSD Generated Class

我有一个使用XSD.exe生成的类,但我想为此对象使用ToString方法,以便可以将它们添加到列表框中,等等。将来我可能不得不从XSD文件重新生成这些类,所以我不想手动覆盖生成的类上的方法。 有没有解决这个问题的方法而无需创建新类?

我生成的类如下所示; 我想要一个ToString方法来显示一些类变量,而不是它当前正在执行的类的名称。

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class cardOnFileResponse {

    private string paymentInstrumentRefField;

    private string partyIdField;

    private string friendlyNameField;

    private string cardholderNameField;

    private string maskedPANField;

    private string startDateField;

    private string expiryDateField;

    private string issueNoField;

    private cardType cardTypeField;

    private bool cardTypeFieldSpecified;

    /// <remarks/>
    public string paymentInstrumentRef {
        get {
            return this.paymentInstrumentRefField;
        }
        set {
            this.paymentInstrumentRefField = value;
        }
    }

    /// <remarks/>
    public string partyId {
        get {
            return this.partyIdField;
        }
        set {
            this.partyIdField = value;
        }
    }

    /// <remarks/>
    public string friendlyName {
        get {
            return this.friendlyNameField;
        }
        set {
            this.friendlyNameField = value;
        }
    }

    /// <remarks/>
    public string cardholderName {
        get {
            return this.cardholderNameField;
        }
        set {
            this.cardholderNameField = value;
        }
    }

    /// <remarks/>
    public string maskedPAN {
        get {
            return this.maskedPANField;
        }
        set {
            this.maskedPANField = value;
        }
    }

    /// <remarks/>
    public string startDate {
        get {
            return this.startDateField;
        }
        set {
            this.startDateField = value;
        }
    }

    /// <remarks/>
    public string expiryDate {
        get {
            return this.expiryDateField;
        }
        set {
            this.expiryDateField = value;
        }
    }

    /// <remarks/>
    public string issueNo {
        get {
            return this.issueNoField;
        }
        set {
            this.issueNoField = value;
        }
    }

    /// <remarks/>
    public cardType cardType {
        get {
            return this.cardTypeField;
        }
        set {
            this.cardTypeField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool cardTypeSpecified {
        get {
            return this.cardTypeFieldSpecified;
        }
        set {
            this.cardTypeFieldSpecified = value;
        }
    }
}

由于它是作为子类生成的,因此您可以创建一个单独的子类(而不是自动生成),在其中重写ToString()。 例如

public partial class cardOnFileResponse 
{
    public override string ToString()
    {
        return String.Format("Response: {0} {1}", this.friendlyNameField, this.cardholderNameField);
    }
}

它已经被声明为局部类,因此在一个单独的文件中定义ToString():

public partial class cardOnFileResponse {
    public new string ToString()
    {
        string retn="";
        retn += ....
        return retn;
    }
}

当然,如果生成的代码删除或更改了您在ToString()实现中使用的字段,则可能需要对其进行更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM