C# 我要问的是WCF的依赖注入吗?

C# 我要问的是WCF的依赖注入吗?,c#,wcf,C#,Wcf,我正在与一位同事在我们产品的web服务层上合作。他已经组合了一些服务方法,但它们都需要相同的对象。以下是一个例子: public interface IQueueService { [OperationContract] UserBase LoginUser(MessageBase message, string userName, string password); [OperationContract] bool Lo

我正在与一位同事在我们产品的web服务层上合作。他已经组合了一些服务方法,但它们都需要相同的对象。以下是一个例子:

public interface IQueueService
    {
        [OperationContract]
        UserBase LoginUser(MessageBase message, string userName, string password);

        [OperationContract]
        bool LogoutUser(MessageBase message, string userName);
}
如您所见,每个方法都需要MethodBase对象。在调用任何其他方法之前,使用“kind/sorta WCF构造函数”要求该对象的最佳方法是什么。这就是依赖注入吗?我一直在读这方面的文章,但不确定这是否是我们所需要的

我想我们可以有一个方法来创建MethodBase实例,如果它不存在于任何其他方法中,我们抛出一个异常


任何想法都很感激。谢谢

WCF是基于接口的,而且你没有接口的构造函数,所以依赖注入对你没有帮助

根据您希望客户端与服务进行何种交互,以及
MessageBase
类的语义,您可能希望采用面向连接的设计:

public interface IQueueService
{
    [OperationContract(IsOneWay = false, IsInitiating = true)]
    void Connect(MessageBase message);

    [OperationContract]
    UserBase LoginUser(string userName, string password);

    [OperationContract]
    bool LogoutUser(string userName);

    [OperationContract(IsOneWay = false, IsTerminating = true)]
    void Disconnect();
}
您的客户端需要首先
Connect()
,提供
MessageBase
,然后调用一个操作(比如,
logiuser()
),然后调用
Disconnect()


当然,这完全取决于您没有提供的语义。

完全不相关,但您遵循的是什么样的命名约定?它看起来像匈牙利语,现在应该被消灭了,而且有充分的理由。请不要去那里;)我已经在这场战斗中战斗了6个多月了。我1000%同意,并确实考虑过改变这个例子;)我改变了它,因为它也伤害了我的眼睛;)这让我想到了WCF的会话。谢谢