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