2010-04-01 9 views
1

J'essaie d'enquêter DeHL avec l'attribut personnalisé Delphi 2010 et j'ai un problème.Delphi 2010 DeHL Sérialisation Attribut XML et personnalisé: comment ça marche?

TAppParamTest = class 
    public 
    User: string; 
    Password: string; 
    end; 

    TAppParam = class 
    private 
    FTest: TAppParamTest; 
    public 

    constructor Create; 
    destructor Destroy; override; 

    property Test: TAppParamTest read FTest write FTest; 
    end; 

cela fonctionne bien: quand je sérialiser j'ai cette

<TAppParam xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:DeHL="http://alex.ciobanu.org/DeHL.Serialization.XML" DeHL:class="AppParam_unt.TAppParam" DeHL:refid="1"> 
    <FTest DeHL:class="AppParam_unt.TAppParamTest" DeHL:refid="2"> 
    <User>User</User> 
    <Password>Psw</Password> 
    </FTest> 
</TAppParam 

mais je veux ceci:

<TAppParam xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:DeHL="http://alex.ciobanu.org/DeHL.Serialization.XML" DeHL:class="AppParam_unt.TAppParam" DeHL:refid="1"> 
    <Test DeHL:class="AppParam_unt.TAppParamTest" DeHL:refid="2"> 
    <User>User</User> 
    <Password>Psw</Password> 
    </Test> 
</TAppParam 

donc je veux mettre attribut personnalisé dans ma classe:

TAppParam = class 
     private 
     [XmlElement('Test')] 
     FTest: TAppParamTest; 
     public 

     constructor Create; 
     destructor Destroy; override; 

     property Test: TAppParamTest read FTest write FTest; 
     end; 

mais il ne compile pas :(

Où est-ce que je fais une erreur?

+0

Je viens d'essayer ça et ça a bien été compilé. Quelle est l'erreur du compilateur et quelle est la version de Delphi? –

+0

J'utilise Delphi 2010 et j'ai cela en français "E2034 Trop de paramètres originaux" donc trop de paramètres en anglais. J'utilise DeHL 0.8. Merci de répondre. –

+0

Nouveau lien DeHL; https://github.com/pavkam/DeHL –

Répondre

4

Utilisation: [XmlName('Test')] [XmlElement]

J'ai changé ces attributs car il réduit la complexité du code dans le sérialiseur.

+0

Merci beaucoup. Ça fonctionne maintenant :) –