使用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的文档,但我似乎无法理解这个想法。
任何简单的代码都会非常清晰和有帮助。
您提到的文章是关于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
继承的类。使用这种方法,您可以向创建的类添加自定义扩展。