下面的方法在我的项目中使用不同的界面编写了12次不同的时间
ChannelFactory<interface>
和其他“用户”。
var user = new SomeWebServiceReference.User();
以下示例。
因此,我想在“ WebServiceAWI”接口和任何其他接口(例如WebServiceBW,WebServiceAWA)中传递一个通用类或类中的通用方法(不确定我需要什么)和“用户”,但我不确定该怎么做。
// file 1
public void TestSomething(string url)
{
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
EndpointAddress endpoint = new EndpointAddress(url);
var channelFactory = new ChannelFactory<WebServiceAWI>(binding, endpoint);
var webservice = channelFactory.CreateChannel();
var user = new User(); // from ServiceReferenceARM
user.UserName = webservice.EncryptValue("someone");
user.Password = webservice.EncryptValue("password");
WebServiceResult result = webservice.AttorneysGet(user);
}
// file 2
public void TestSomething(string url)
{
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
EndpointAddress endpoint = new EndpointAddress(url);
var channelFactory = new ChannelFactory<WebServiceBW>(binding, endpoint);
var webservice = channelFactory.CreateChannel();
var user = new User(); // from ServiceReferenceBW
user.UserName = webservice.EncryptValue("someone");
user.Password = webservice.EncryptValue("password");
WebServiceResult result = webservice.AttorneysGet(user);
}
我认为我在界面上的定位是正确的,但是我不确定如何传递一个像普通类的类。
这是我到目前为止所拥有的。
这样称呼
TestTOSomething<WebServiceAWI, WebServicesTO.ServiceReferenceARM.User>(new ServiceReferenceARM.User(), url);
然后像这样实现它,但是我知道这是错误的。
public void TestTOSomething<T, K>(K newUser, string url)
{
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
EndpointAddress endpoint = new EndpointAddress(url);
var channelFactory = new ChannelFactory<T>(binding, endpoint);
var webservice = channelFactory.CreateChannel();
var user = newUser;
user.UserName = webservice.EncryptValue("someone");
user.Password = webservice.EncryptValue("password");
WebServiceResult result = webservice.AttorneysGet(user);
}
答案 0 :(得分:0)
您可以为这些接口创建接口,然后在您的方法中引用它们。如果未使用newUser
的泛型类型,则只需在参数中直接使用它即可。
对于WebServiceAWI,您需要使用where
关键字定义该类型。
public void TestTOSomething<T>(IUser newUser, string url) where T : IWebServiceAWI