2013-04-22 2 views
0

포스트 샤프트 구동 싱글 톤 패턴을 갖고 싶습니다.포스트 샤프트 싱글 톤

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를 구현하고 인스턴스 재산 및 새로 고침에 대한 코드를 삽입하는 클래스를 만들어야합니다

클래스 사용 :

((Repository as ISingleton).Instance as Repository).DoSomething(); 
+1

사용자가 어떤 측면을 의미하지는 않습니다. 제네릭의 문제점은 무엇입니까? –

답변

4

내가 이해할 수있는 한, 당신은 객체의 수명을 제어하고 싶다. 그건 당신이 AOP만으로 할 수있는 것이 아닙니다. 그런 것들은 일반적으로 IoC container (Unity, Windsor, Ninject)을 사용하고 개체의 수명 (싱글 톤, 스레드 당 하나의 인스턴스, 요청 당 하나의 인스턴스)과 같은 옵션을 사용하여 관리됩니다. IoC 컨테이너를 사용하는 경우 자체 속성을 쓸 수 있으므로 take all classes with, for example, [Singletone] attribute 수 있으며 컨테이너 내에서 단일 톤 수명으로 등록 할 수 있습니다. 그런 다음 클래스의 소비자가 컨테이너의 인스턴스를 해결하면 항상 동일한 인스턴스를 가져옵니다.

+0

좋아, 나는 IoC에 대한 더 많은 연구를 할 것이다. 고맙습니다. – orange