次のクラスを想像してください。
public class Settings
{
[FileBackedProperty("foo.txt")]
public string Foo { get; set; }
}
上記に似たものを書きsettings.Foo
、ファイル「foo.txt」から読み取り、「foo.txt」に書き込めるようにしたいと思いますsettings.Foo = "bar"
。
明らかにこれは単純化された例であり、本番アプリケーションでは上記のことを行いませんが、Foo を ASP.net に格納したい場合など、他の例があります。何度もコード:
public int Foo
{
get
{
if (Session["foo"] != null)
return Convert.ToInt32(Session["foo"]);
else
// Throw an exception or return a default value
}
set
{
Session["foo"] = value;
}
}
(繰り返しになりますが、この例は単純化されており、上記のコードは書きません。実際には嘘をついています。上記のコードがあり、リファクタリングに取り組んでいるため、この質問です)
上記の例は、すべてが同様のロジックを持つ 50 の異なるセッション値がない限り問題ありません。それで、2番目のプロパティを最初のプロパティに似たものに変換できる方法はありますか? (属性とリフレクションを使用するか、または他の方法を使用しますか?)