public sealed class OperationContractAttribute : Attribute
{
public string Name
{get;set;}
//更多成员
}
需要同时为服务和客户端的操作指定别名,在服务端要为每个重载的操作提供唯一的标识名。例如:
[OperationContract(Name="A")]
string GetData(int value);
[OperationContract(Name="B")]
void GetData();
public interface IService1 {
[System.ServiceModel.
OperationContractAttribute(Action="http://192.168.1.105:8003/IService1/A", ReplyAction=http://192.168.1.105:8003/IService1/AResponse)]
string A(int value);
[System.ServiceModel.
OperationContractAttribute(Action="http://192.168.1.105:8003/IService1/B", ReplyAction=http://192.168.1.105:8003/IService1/BResponse)]
void B();
public partial class Service1Client : System.ServiceModel.ClientBase<ConsoleApplication1.ServiceReference1.IService1>, ConsoleApplication1.ServiceReference1.IService1 {
public Service1Client() {
}
public Service1Client(string endpointConfigurationName) :
base(endpointConfigurationName) {
}
public Service1Client(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public string A(int value) {
return base.Channel.A(value);
}
public void B() {
base.Channel.B();
}}
public interface IService1 {
[System.ServiceModel.
OperationContractAttribute(Name="A",Action="http://192.168.1.105:8003/IService1/A", ReplyAction=http://192.168.1.105:8003/IService1/AResponse)]
string GetData(int value);
[System.ServiceModel.
OperationContractAttribute(Name="B", Action="http://192.168.1.105:8003/IService1/B", ReplyAction=http://192.168.1.105:8003/IService1/BResponse)]
void GetData();
}
public partial class Service1Client : System.ServiceModel.ClientBase<ConsoleApplication1.ServiceReference1.IService1>, ConsoleApplication1.ServiceReference1.IService1 {
public string GetData(int value)
{
return base.Channel.GetData(value);
}
public void GetData()
{
base.Channel.GetData();
}