私はクラスプロパティ上のアトリビュートで定義されたコントロールを持つダイアログボックスを生成できるクラスを持っています。例:リフレクションを使用してアトリビュートを使用してダイアログ作成を駆動する代わりに
public class MyClass
{
[DialogControl("Total Amount")]
public Int32 Total { get; set; }
}
は、私がTotal
プロパティのNumericUpDownを持つダイアログボックスを生成します。ダイアログが終了すると、ダイアログの値がプロパティに設定されます。これはうまくいく。
しかし、この属性はクラスを少し複雑にしています。クラス内のプロパティに属性を追加することなく、同様の機能を得るための他の設計や可能性を探求したいと考えています。
このようなシステムをどのように設計して実装しますか?
EDIT:MyClass
に類似したクラスが既に設計されており、クライアント側になるとします。クラスからダイアログへの変換を行うコードは内部的なものです。
属性名を取得し、テキストを "Total Amount"とするクラス属性にすることができます。例えば、 '[ClassDialogControls(" Total "、" Total Amount "、" OtherProp "、" Other Text ")] '。あなたは "クリーナー"と考えるかもしれません...とにかく、あなたの実装はかなり素晴らしいですが、実際の必要性はわかりません。 – SimpleVar
実装は、アプリケーションの中で何度も起こるダイアログの設定と表示を削減します。ダイアログ設定のためにこのメタデータを追加するブリッジングクラスのように、別のクラスを設定することを考えていました。 – MarkP