文字列定数を含むクラスとカウンタオブジェクトを表す読み取り専用オブジェクトを含むクラスがあります。文字列定数に対応するカウンタの文字列表現をタグ付けするカスタム属性を作成しました。属性を使用して文字列constをカウンタオブジェクトにリンクする良い方法はありますか?ここでリフレクションを使用してあるクラスから別のクラスの読み取り専用オブジェクトフィールドにリンクする方法
は、文字列のconstの例である:ここで
public static class OperatorDiagnosticsConstants
{
[CounterType(CounterType = "ReagentProbe1")]
public const string R1_PROBE_CODE = "SACT-158";
}
は読み取り専用カウンタオブジェクトを含むクラスです。
public class MaintenanceCounterType : CounterTypeEnum
{
public static readonly MaintenanceCounterType ReagentProbe1 = new MaintenanceCounterType(MaintenanceCounterTypeConstants.ReagentProbe1ID);
}
私は2つの解決策を考えるが、よりがある場合は疑問に思うことができますエレガントな方法? 最初に、これらの2つのクラスを使用するコードにswitch文を使用してconvertメソッドを持たせることができます。 MaintenanceCounterType
public MaintenanceCounterType Convert(string attributeStr)
{
switch (attributeStr)
{
case "ReagentProbe1":
return MaintenanceCounterType.ReagentProbe1;
......
}
}
または私は私がそれらを一致させるためにMaintenanceCounterType
と使用反射に同じカスタム属性CounterType
を追加することができると思いを返すために、属性文字列に切り替えます。私は、カスタム属性の文字列プロパティの同等性をチェックすると思いますか?
もっと洗練されたソリューションをお探しですか?ありがとう!
あなたは実際にどのような問題を解決しようとしていますか? –
あなたがしようとしていることが明確ではありません。おそらくレジストリパターンに類似したものを達成しようとしていますか? –
「リンク」は*正確に*あなたは何を意味しますか? –