好的,自从我使用Web References以来已经有一段时间了。我需要复习一下。我想我有大约80%的代码需要得到响应,但我错过了一些东西。也许你可以帮助我:)。
假设:
指向GetSomething
网址时方法列表中名为.wsdl
的网络方法。
这会产生一些类/对象:
GetSomethingRequest
GetSomethingCompletedEventHandler
GetSomethingCompletedEventArgs
myComplexType
我用它来创建此代码:
void someMethodToTestResponse()
{
GetSomethingRequest request = new GetSomethingRequest();
// fill in the request
request.myComplexType.Property1 = "Blah";
request.myComplexType.Property2 = "Kachoo";
GetSomethingCompletedEventHandler handler = GetSomethingCompleted_Response;
//.... ok now what?
//handler.Invoke(???)
// at this point I'm supposed to send an object for source (request maybe?)
// and a new instance of GetSomethingCompletedEventArgs but that class is
// asking for stuff that makes me think that is not the right idea.
}
void GetSomethingCompleted_Response(object source, GetSomethingCompletedEventArgs args)
{
// get the result
var result = args.Result;
}
我做错了什么?我错过了什么?提前谢谢。
答案 0 :(得分:0)
您不需要网络服务源代码。 Web服务可以用Java实现。创建服务引用也是一样的,因为我们真的不知道另一方面是什么。
因此,请尝试在VS2008中添加服务引用并输入工作Web服务的URL。 VS将检查服务器上的wsdl并为您生成所需的类。
从那时起,您只需将服务称为普通方法调用。这意味着您不必处理请求和http以及此类详细信息。所有这些都是对你隐藏的。除了在app.config中可以更改许多WCF设置。
答案 1 :(得分:0)
好的,我发现我需要找到一个Service
类型的类。请参阅提及的SO Post:
private com.nowhere.somewebservice ws;
问题是他们提供的课程不是我的智能感知,我认为这不是我想要的。
以下是我如何解决我的问题:
blah.webservice.SomeMainServiceClass service = new SomeMainServiceClass();
GetSomethingRequest request = new GetSomethingRequest();
// fill in the request
request.myComplexType.Property1 = "Blah";
request.myComplexType.Property2 = "Kachoo";
object myResponse = service.GetSomething(request);