2016-04-27 7 views
0

私は私にこのような何かを探して、XML文書を返すことができますWCFサービスを作成しようとしています:複数、同一の要素

<alert> 
    <identifier>SecretID</identifier> 
    <info> 
     <valueName>Name1</valueName> 
     <value>Info1</value> 
    </info> 
    <info> 
     <valueName>Name2</valueName> 
     <value>Info2</value> 
    </info> 
</alert> 

このファイルのDTOは次のようになります私は次のようにしようとすると、しかし

[DataContract(Name = "alert", Namespace = "")] 
public class Alert 
{ 
    [DataMember(Name = "identifier")] 
    public string identifier { get; set; } 

    [DataMember(Name = "info")] 
    public List<Info> Info { get; set; } 
} 

[DataContract(Name = "info", Namespace = "")] 
public class Info 
{ 
    [DataMember(Name = "valueName")] 
    public string ValueName { get; set; } 

    [DataMember(Name = "value")] 
    public string Value { get; set; } 
} 

、::これは

var alert = new Alert() 
{ 
    Identifier = "SecretID", 
    Info = new List<Info> 
    { 
     new Info() {ValueName = "Name1", Value = "Info1"}, 
     new Info() {ValueName = "Name2", Value = "Info2"}, 
    } 
} 

私が取得:

<alert> 
    <identifier>SecretID</identifier> 
    <info> 
     <info xmlns=""> 
      <valueName>Name1</valueName> 
      <value>Info1</value> 
     </info> 
     <info xmlns=""> 
      <valueName>Name2</valueName> 
      <value>Info2</value> 
     </info> 
    </info> 
</alert> 

私は余分な<info>タグを必要としない、と名前空間xmlns=""も削除しているといいだろう。私はそれを取り除くために何をすべきですか?後述するように

答えて

0

あなたは辞書やキー値のペアを使用することができます。

[DataContract(Name = "alert", Namespace = "")] 
public class Alert 
{ 
    [DataMember(Name = "identifier")] 
    public string identifier { get; set; } 

    [DataMember(Name = "info")] 
    public KeyValuePair<string, string> Info { get; set; } 
} 

var alert = new Alert() 
{ 
    Identifier = "SecretID", 
    Info = new KeyValuePair<string, string>() 
} 
+0

をこれは有望に見える - どのような '' KeyValuePair''は、複合型(クラス)である場合には? –

関連する問題