我有一份有客户申请的周转基金服务。 我完全控制客户和服务器的安装。 我在WCF合同中采用数百种方法,需要客户提供的材料。 我不是修改数以百计的方法,而是能够向客户发出每次电话的具体数据,可能是在渠道的某个地方?
或许当客户在发出呼吁之前就设立代理机构时,它可以将这一数据存放在代理人的内部财产中......然后数据被送至服务器,然后从服务方法中,我可以检查“Context”行动或其他一些记忆,以收回和使用这些数据?
任何想法?
我有一份有客户申请的周转基金服务。 我完全控制客户和服务器的安装。 我在WCF合同中采用数百种方法,需要客户提供的材料。 我不是修改数以百计的方法,而是能够向客户发出每次电话的具体数据,可能是在渠道的某个地方?
或许当客户在发出呼吁之前就设立代理机构时,它可以将这一数据存放在代理人的内部财产中......然后数据被送至服务器,然后从服务方法中,我可以检查“Context”行动或其他一些记忆,以收回和使用这些数据?
任何想法?
如同你一样,它想要的是像“SOAP”网络服务的负责人。 I m not a WCF expert, but this ,如WCF当量
这实际上就是困难。 我认为,最好的方式是写上一位国际科学学会主席,在这份致辞中增加一个《社会行动计划》的负责人。 标前方法的负责人。
See e.g. http://weblogs.asp.net/paolopia/archive/2007/08/23/even-a-wcf-message-inspector.aspx
你可以轻视地这样做。 它将开展一些工作。
确实,SOAP负责人是将班外数据输入和(或)从服务处传送的完美途径。 但是,你已经确定了合同,增加负责人将改变合同。
我认为,你不得不开始使用电文合同。
原件:
[DataContract]
public class ComplexObject
{
[DataMember(Name = "Id")]
public int Id;
[DataMember]
public string Name;
}
[ServiceContract()]
public interface IMyContract
{
void MyOperation(ComplexObject co);
}
public class MyService : IMyContract
{
#region Implementation of IMyContract
public void MyOperation(ComplexObject co)
{
// use co.*
}
#endregion
}
利用电传合同:
[DataContract]
public class ComplexObject
{
[DataMember(Name = "Id")]
public int Id;
[DataMember]
public string Name;
}
[DataContract]
public class MyHeader
{
[DataMember]
public string UserName;
[DataMember]
public string Password;
}
[DataContract]
public class OutputHeader
{
[DataMember]
public string Token;
}
[MessageContract]
public class MyOperationRequest
{
[MessageHeader]
public MyHeader Authentication;
[MessageBodyMember]
public ComplexObject TheObject;
}
[MessageContract]
public class MyOperationResponse
{
[MessageHeader]
public OutputHeader OutputHeader;
}
[ServiceContract()]
public interface IMyContract
{
MyOperationResponse MyOperation(MyOperationRequest request);
}
public class MyService : IMyContract
{
public MyOperationResponse MyOperation(MyOperationRequest request)
{
// use request.TheObject.*
// Can also read request.Authentication.*
return new MyOperationResponse
{ OutputHeader = new OutputHeader { Token = "someToken" } };
}
}