从linqtotwitter iauthorizer
提取bearertoken的另一项后续访问我在应用程序中成功使用了Auth/Context/BearerToken,但是我现在想使用L2T库来检查费率。我需要TwitterContext来这样做,但是我现在不超出Twitterctx范围。
是否可以将其设置为公共类,以便我可以从任何地方访问它而无需重新授权?
预先感谢您。
有不同的方法可以做到这一点。这是您可以去Singleton路线或工厂方法的夫妇。
注意: 关于单身人士是否是适当使用的模式,或者是对对象的全局引用是否为 一点都合适,但这不是您要问的。
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);
}
}
然后有两种方法可以使用此方法 -
作为单身人士:
TwitterContext twitterCtx = TwitterContextService.Instance;
或作为工厂方法:
TwitterContext twitterCtx = TwitterContextService.CreateTwitterContext();
另外,您可以使用IOC容器(网络上的大量信息和可用库),并将依赖项传递到使用TwitterContext的代码中。我想有几种不同的方法。