System.Attributeクラスを使用することは(一見)良い考えであるように思われる状況に陥りました。
アプリケーションで印刷するオブジェクトがあり、各プロパティの前にラベル(またはその前の文字列)が必要です。各プロパティを次のようにハードコーディングできます。
Console.WriteLine("Color:"+obj.color);
Console.WriteLine("Size:"+obj.size);
各プロパティについても同様です。しかし、その代わりに、この「ラベル」をハードコーディングする必要がないコードを作成しようとしていたので、すべてのプロパティを動的に出力できました。
System.Attributeクラスを使用して、そのようなものを取得しました。
public class MyObject
{
[MyCustomLabel("Color:")]
public string Color;
[MyCustomLabel("Size:")]
public string Size;
//etc...
}
したがって、ここに私の問題があります。この属性の値を取得することは不可能ではありませんが、リフレクションを使用する必要があったため、フレンドリーではありません。
リフレクションを使用することはそれほど怖くありませんが、作成されていないものに属性を使用しているように見えました。
属性を使用するのに最適な場所はどこか、そしてこれが本当にそれを使用するための状況であるかどうか疑問に思います。