C# IIS托管具有2个合约的WCF服务或托管具有依赖项的2个服务

C# IIS托管具有2个合约的WCF服务或托管具有依赖项的2个服务,c#,wcf,iis,dependency-injection,C#,Wcf,Iis,Dependency Injection,我正在开发一个WCF服务,它有一个名为MyApp.IOperationService的合同 <service name="MyApp.OperationService"> <endpoint address="OperationService" binding="basicHttpBinding" contract="MyApp.IOperationService" /> </service> 在自托管环境中,我创建了一个MyApp.Operatio

我正在开发一个WCF服务,它有一个名为MyApp.IOperationService的合同

<service name="MyApp.OperationService">
    <endpoint address="OperationService" binding="basicHttpBinding" contract="MyApp.IOperationService" />
</service>
在自托管环境中,我创建了一个MyApp.OperationService对象,然后将该对象传递给MyApp.AdminService的构造函数。对于IIS托管,我发现我需要使用WCF扩展点并实现IInstanceProvider,然后使用ServiceHostFactory

在这一点上,我停了下来,想知道这是否会起作用,因为我的AdminService需要一个已经创建的由IIS控制的MyApp.OperationService,而对于我来说,它已经非常复杂了

问题是,是否可以通过另一种方式实现此功能(未通过元数据公开的现有服务的管理契约/接口)


谢谢。

除了使用WCF扩展点,我找不到解决问题的方法。我使用Microsoft.Practices.Unity通过IoC管理服务,然后使用.svc文件中的Factory属性

<service name="MyApp.AdminService">
    <endpoint address="Admin" binding="netTcpBinding" contract="MyApp.IAdminService" />
</service>
namespace MyApp
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single, UseSynchronizationContext = false)]
    public class AdminService : IAdmin
    {
        MyApp.OperationService objOperationService = null;

        public AdminService(MyApp.OperationService objOperationService)
        {
            m_objOperationService = objOperationService;
        }

        public void Login(string pincode)
        {
            m_objOperationService.Login(pincode);
        }
    }       
}