Представьте себе следующий класс:
public class Settings
{
[FileBackedProperty("foo.txt")]
public string Foo { get; set; }
}
Я хотел бы иметь возможность написать что-то похожее на вышеприведенное и иметь настройки. Foo
читать из файла "foo.txt" и настройки. Foo = "bar"
записать в "foo.txt".
Очевидно, что это упрощенный пример, и я бы не стал делать это в рабочем приложении, но есть и другие примеры, например, если бы я хотел, чтобы Foo сохранялся в состоянии сеанса ASP.net «foo», но мне надоело снова и снова пишу следующий код:
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 различных значений сеанса, имеющих одинаковую логику. Итак, могу ли я каким-то образом преобразовать второе свойство во что-то похожее на первое? (Используя атрибуты и отражение, или, может быть, какой-то другой метод?)