2017-09-13 1 views
0

또 하나의 내가 성공적으로 내 응용 프로그램에서 그러나 지금 가격에 확인하기 L2T 라이브러리를 사용하고 싶었로 인증/컨텍스트/BearerToken을 사용하고 Extract BearerToken from LinqToTwitter IAuthorizerIAuthorizor 또는 TwitterContext 글로벌/액세스 할 수 있도록

까지 따릅니다. 그렇게하려면 TwitterContext가 필요하지만 twitterCtx 범위를 벗어났습니다.

다시 설정할 필요없이 어디서나 액세스 할 수 있도록 공개 클래스로 설정할 수 있습니까?

미리 감사드립니다.

답변

1

다른 방법이 있습니다. 싱글 톤 라우트 나 팩토리 메소드를 사용할 수있는 몇 가지 방법이 있습니다.

참고 :객체에 대한 글로벌 참조 싱글턴이 사용하기에 적절한 패턴인지에 대한 여부가의 논쟁이 전혀 심지어 적절하지만 그건 당신이 요구하는지 아니다. , 또는

TwitterContext twitterCtx = TwitterContextService.CreateTwitterContext(); 

:

TwitterContext twitterCtx = TwitterContextService.Instance; 

또는 공장 방법으로 : 싱글로

-

public class TwitterContextService 
{ 
    static TwitterContext twitterCtx; 
    public static TwitterContext Instance 
    { 
     get 
     { 
      if (twitterCtx == null) 
       twitterCtx = CreateTwitterContext(); 

      return twitterCtx; 
     } 
    } 

    public static TwitterContext CreateTwitterContext() 
    { 
     var auth = new ApplicationOnlyAuthorizer() 
     { 
      CredentialStore = new InMemoryCredentialStore 
      { 
       ConsumerKey = Environment.GetEnvironmentVariable(OAuthKeys.TwitterConsumerKey), 
       ConsumerSecret = Environment.GetEnvironmentVariable(OAuthKeys.TwitterConsumerSecret) 
      }, 
     }; 

     return new TwitterContext(auth); 
    } 
} 

그런 다음 당신이 사용할 수있는 두 가지 방법이 있습니다 당신은 IoC 컨테이너를 사용할 수 있습니다 (tons of inf 웹에서 ormation 및 사용 가능한 라이브러리)를 열고 TwitterContext를 사용하는 코드에 의존성을 전달합니다. 나는 이것을하기위한 몇 가지 다른 방법이 있다고 생각한다.