2010-07-22 5 views

Répondre

4

ArsenMkrt est sur la bonne voie, mais il manque le contenu de l'élément, je suggère une version révisée:

class BarId 
{ 
    [XmlText()] 
    public int Content {get; set;} 

    [XmlAttribute()] 
    public string BarString {get; set;} 
} 

public class Foo{ 
    public BarId BarId {get; set;} 
} 

De cette façon, vous obtenez le contenu comme un entier.

0

Vous devez créer Barid classe qui a BarString en elle

class BarId 
{ 
    [XmlAttribute] 
    public string BarString{get;set;} 
} 

public class Foo{ 
public BarId BarId{get;set;} 
} 

Ou vous pouvez utiliser Cus mécanisme tom sérialisation comme here

+0

Comment obtenez-vous que BarId se comporte comme un int? –

+0

Ce n'est pas le cas. Il semble que vous ayez besoin d'une sérialisation programmatique et non d'attributs. –

+0

J'aime rester avec les classes intégrées si possible. Cependant, les remplacements de sérialiseurs personnalisés ne sont pas aussi intimidants qu'ils le sont d'abord. Il y a un certain nombre d'endroits où je les utilise dans le code de production. Ils permettent une grande flexibilité, en particulier lors de la correspondance de Xml externe ou hérité. Même si vous êtes satisfait à 99% avec XmlSerializer, il vaut toujours la peine de vérifier les remplacements. – TechNeilogy

Questions connexes