0

我最近在一个新的 MVC 项目上实现了 Windsor(两者都是新项目),并且在用它实现服务时遇到了麻烦。

该服务是一个使用 c# 的linkedin 的小型工具包项目。在提供的示例中,可以这样设置服务:

在 App_Start/AuthConfig.cs 中,我创建了一个新实例linkedInOAuthClient,即使用工具包的主要对象。

LinkedInOAuthClient linkedInOAuthClient = new LinkedInOAuthClient(new CookieAccessTokenStorage(ConfigurationManager.AppSettings["apiSecret"]),
            new DotNetOpenAuthWebConsumer(ServiceDescriptions.Authenticate,
                new InMemoryOAuthTokenManager(ConfigurationManager.AppSettings["apiKey"], ConfigurationManager.AppSettings["apiSecret"])));

LinkedInService然后我设置一个实现ILinkedInService为的静态对象linkedInOAuthClient

LinkedInServiceHelper.LinkedInService = linkedInOAuthClient;

然后在我的控制器中

public ILinkedInService LinkedInService { get; set; }
public HomeController(ILinkedInService linkedInService)
    {
        LinkedInService = linkedInService;
    }

为了使用该服务。

我的问题是:如何迁移 LinkedInService 以使用 Windsor?

我已经将 LinkedInService 注册为设施并将其安装在温莎

public class LinkedInFacility : AbstractFacility
{
    protected override void Init()
    {

        Kernel.Register(Component.For<ILinkedInService>()
                                 .ImplementedBy<LinkedInOAuthClient>().LifestyleTransient());
    }
}

但我不知道如何实施linkedInOAuthClient

有什么帮助吗?

4

1 回答 1

1

除了在容器中注册创建的实例之外,您无需执行任何操作:

Kernel.Register(Component.For<ILinkedInService>()
    .Instance(LinkedInServiceHelper.LinkedInService)));
于 2013-07-12T08:01:55.690 回答