2011-01-14 5 views
2

設定XMLファイルがあります。いくつかのノードは、計算の目的のために使用されていると私は私のC#クラスでこのXMLを使用C#でENUMの値として演算子を持つことに関する質問

<OPERATION>&GT;=</OPERATION> <!-- GREATER THAN OR EQUAL --> <VALUE>1</VALUE> 
<OPERATION>&LT;=</OPERATION> <!-- LESSER THAN OR EQUAL --> <VALUE>1</VALUE> 

以下のような値を引き裂いていく予定です。私はこれらの演算子のためのENUMを持つことができますか? これは可能ですか?

乾杯、 カルティク

答えて

3

あなたはXMLシリアル化を使用している、あなたはXmlEnum属性を使用しようとすることができますと仮定:

public enum Operation 
{ 
    [XmlEnum(">")] 
    GreaterThan, 
    [XmlEnum("<")] 
    LessThan, 
    ... 
} 

私はそれがこれらの特定の文字でどのように動作するかわからないんだけど、しかし... (私は試した、それが正常に動作します)


EDIT

あなたはXMLへのLINQを使用している場合、あなたは自分のクエリ内からメソッドを呼び出すことにより、列挙型の値に文字を解読することができます

Operation DecodeOperation(string s) 
{ 
    switch(s) 
    { 
     case ">": 
      return Operation.GreaterThan; 
     case "<": 
      return Operation.LessThan; 
     ... 
     default: 
      return Operation.Unknown; // or throw exception... 
    } 
} 
+0

はそれを確認 - 細かい –

+0

おかげです。私の要件をさらに拡大すると、私はXMlで述べた操作に基づいて操作を実行しました。私はLINQを使ってメソッドの値を取得し、このためのスイッチケースを使用します。私はXMLをシリアライズしていません – KK99

+0

@ Karthik K、私の更新された答えを見てください。私はあなたがその場合のスイッチよりもうまくいくとは思わない。代わりに、enum値の名前を格納し、それを読むときに 'Enum.Parse'を使用することができます –

関連する問題