2016-05-17 1 views
1

j'ai une classe que je suis en mesure de désérialiser en obtenant xml du serveur Sqldésérialisation conditionnelle Xml en C#

public class personXML 
{ 
public string lang{get;set;} 
public string name_en{get;set;} 
public string name_ar{get;set;} 
} 

j'ai aussi personne classe

public class person 
{ 
public string name {get;set;} 
} 

je veux que si lang = » fr "then person.name doit être personXML.name_en et si lang =" ar "alors person.name doit être personXML.name_ar. je veux le faire par serialize personXML et encore désérialiser en personne classe s'il vous plaît aider

Répondre

0

Vous ne pourrez pas le faire wihtout sérialisation personnalisé: https://msdn.microsoft.com/en-us/library/ty01x675(v=vs.110).aspx

Mais donner votre problème je suggère une approche différente . Vous pouvez conserver à la fois personXML et DTO de personne dans votre code. Dans votre couche d'accès aux données, vous utilisez uniquement personXML. Mais vous exposez le référentiel renvoyant la personne. En d'autres termes, vous gardez la sérialisation facile, et vous ajoutez une abstraction pour gérer la conversion entre personXML et la personne dans un référentiel dédié.

Espérons que ça aide.

+0

s'il vous plaît partager un code de test, ce serait une grande aide –

+0

Google est votre ami non? https://msdn.microsoft.com/fr-fr/library/ff649690.aspx http://blog.gauffin.org/2013/01/11/repository-pattern-done-right/ – Ouarzy