C# Unity DI与WCF客户端
我正在为我们的项目使用UnityContainer。我需要为所有即将进行的wcf调用添加自定义头,因此我实现了IClientMessageInspector和IEndpointBehavior。现在,我尝试使用UnityContainer属性注入从某个对象获取标题值。相同的属性注入在IClientMessageInspector外部工作,但不在自定义Clientmessageinspector内部工作 属性注入C# Unity DI与WCF客户端,c#,wcf,dependency-injection,unity-container,wcf-extensions,C#,Wcf,Dependency Injection,Unity Container,Wcf Extensions,我正在为我们的项目使用UnityContainer。我需要为所有即将进行的wcf调用添加自定义头,因此我实现了IClientMessageInspector和IEndpointBehavior。现在,我尝试使用UnityContainer属性注入从某个对象获取标题值。相同的属性注入在IClientMessageInspector外部工作,但不在自定义Clientmessageinspector内部工作 属性注入 [Dependency] public IUnityContainer _conta
[Dependency]
public IUnityContainer _container { get; set; }
public object BeforeSendRequest(ref Message request, IClientChannel channel){var test= _container; }
_容器始终为空
我们可以像其他类一样在MessageInspector中使用UnityContainer吗?这不是一个直接的答案,但可能会有所帮助。如果您使用Castle Windsor及其WcfFacility,您可以注册ClientMessageInspector,然后Windsor将创建inspector并注入其依赖项,它将处理配置以确保始终调用inspector。如何创建
Clientmessageinspector
?Unity将只注入创建自身的实例(除非在非常罕见的情况下使用build
)…公共类TestClientMessageInspector:IClientMessageInspector@Haukinger,我通过继承IClientMessageInspector创建了testclientmessageinspector。并使用以下代码在endpointbehavior内的testclientmessageinspector上创建了实例<代码>公共类TestClientMessageInspector:IClientMessageInspector。{},在ApplyClientBehavior下的Endpointbehavior内创建ClientMessageInspector实例public void ApplyClientBehavior(ServiceEndpoint endpoint,ClientRuntime ClientRuntime){ClientRuntime.ClientMessageInspector.Add(new testclientMessageInspector());}
如果使用新建testclientMessageInspector()
创建它,您希望unity如何处理实例?例如,尝试container.Resolve()
。这不是一个直接的答案,但可能会有所帮助。如果您使用Castle Windsor及其WcfFacility,您可以注册ClientMessageInspector,然后Windsor将创建inspector并注入其依赖项,它将处理配置以确保始终调用inspector。如何创建Clientmessageinspector
?Unity将只注入创建自身的实例(除非在非常罕见的情况下使用build
)…公共类TestClientMessageInspector:IClientMessageInspector@Haukinger,我通过继承IClientMessageInspector创建了testclientmessageinspector。并使用以下代码在endpointbehavior内的testclientmessageinspector上创建了实例<代码>公共类TestClientMessageInspector:IClientMessageInspector。{},在ApplyClientBehavior下的Endpointbehavior内创建ClientMessageInspector实例public void ApplyClientBehavior(ServiceEndpoint endpoint,ClientRuntime ClientRuntime){ClientRuntime.ClientMessageInspector.Add(new testclientMessageInspector());}
如果使用新建testclientMessageInspector()
创建它,您希望unity如何处理实例?例如,尝试container.Resolve()
。