使用SimpleInjector使用WCF

本文关键字:使用 WCF SimpleInjector | 更新日期: 2023-09-27 18:23:48

我对SimpleInjector和WCF在通用中仍然是新手

有没有任何方法可以使用SimpleInjector来使用WCF?下面是我的WCF代码

[ServiceContract]
public interface IPassAuth
{
    [OperationContract]
    string Authenticate(string uid, string pass);
}
public class PassAuth : IPassAuth
{
    //   Implementations here...
}

现在的问题是,我如何使用SimpleInjector来使用ASP.Net MVC?我还需要创建一个具有匹配OperationContracts的接口吗?我已经阅读了关于WCF Integration Simple Injector的文档,但我似乎无法理解这个想法。

任何简单的代码都会非常清晰和有帮助。

使用SimpleInjector使用WCF

您提到的文章是关于wcf服务的服务器端激活的,它不适用于客户端消费。是的,您需要在客户端实现类。

最简单的方法是使用内置的工厂,该工厂使用反射根据接口自动创建客户端代理。

在您的情况下

    BasicHttpBinding myBinding = new BasicHttpBinding();
    EndpointAddress myEndpoint = new EndpointAddress("http://service/address");
    ChannelFactory<IPassAuth> myChannelFactory = new ChannelFactory<IPassAuth>(myBinding, myEndpoint);
    // the CreateChannel automatically creates a instance
    // of a concrete client-side proxy class for given interface
    IPassAuth wcfClient = myChannelFactory.CreateChannel();
    string s = wcfClient.Authenticate( ... );

另一个更高级的选项是编写一个从ClientBase继承的类。使用这种方法,您可以向创建的类添加自定义扩展。