PostSharp を利用したシングルトン パターンがあればいいのにと思います。
PostSharp は可能ですか?
既存の例またはプロジェクトはありますか?
次のようにしたい:
interface ISingleton
{
void Refresh();
object Instance{get;set;}
}
[Singleton(AutoRefresh=true, AutoRefreshInterval=20)]
public class Repository
{
private Repository()
{
//Code to load data...
}
public DoSomething()
{
//Do something at instance level;
}
public void Refresh()
{
//Refresh data
}
}
SingletonAttribute クラスで ISingleton を実装し、インスタンス プロパティと Refresh() メソッド本体のコードを挿入する必要があります。
クラスを使用する場合:
((Repository as ISingleton).Instance as Repository).DoSomething();