次のようにコードをリファクタリングしました。
public string CamelCASE { get; set; }
に:
public string CamelCase {get; set; }
入力 XML に前者のケーシングが含まれていることを発見するだけです (叫ぶラクダと呼びましょう)。XML ドキュメントがどのように生成されるかは、私には制御できません。また、変更を撤回したいという欲求もありません。
うるさいラクダのプロパティを静かに話すプロパティにマッピングしたいと思います。
XmlElementとXmlMappingを試しましたが、それほど成功しませんでした。グーグルで調べたところ、この投稿の行に沿って、ものを属性にマップする方法についてヒットしただけでした。ただし、<LoudCAMEL>のようなものだけをプロパティpublic string QuietCamelに逆シリアル化する必要があります。
そうするためのスムーズな方法はありますか?
編集
次のように属性を追加した後:
using System.Collections.Generic;
using System.Xml;
public class Beep : SuperBeep
{
private readonly BeepType _a;
public Beep() { _a = BeepType.SomeSome; }
public Beep(BeepType input) { _a = input; }
~Beep() { }
public override void Dispose() { }
public BeepType Aaa { get { return _a; } }
[XmlElement("CamelCASE")]
public bool CamelCase { get; set; }
}
保護レベルが原因で、コンストラクター 'XmlElement' にアクセスできません という赤い波状のハイライトが表示されます。ただし、コンパイルすると、 「System.Xml.XmlElement」は属性クラスではないと IDE が大声で叫びます。
率直に言って、バージョン 3.5 より前の .NET では属性を使用できないという印象を持っていたので、属性を使用するという提案 (これは .NET 2.0 を対象としています) に少し混乱しています。私は間違っていますか?