首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在silverlight上异步调用同步WCF操作契约方法

在Silverlight应用程序中,异步调用同步WCF操作契约方法可以通过使用Silverlight的异步编程模型来实现。Silverlight中的异步编程模型基于事件和委托,可以轻松地实现异步调用。

以下是一个示例代码,展示了如何在Silverlight应用程序中异步调用同步WCF操作契约方法:

代码语言:csharp
复制
// 创建WCF服务代理
MyServiceClient client = new MyServiceClient();

// 定义异步调用的委托
Action<string> callback = (result) =>
{
    // 在这里处理异步调用的结果
    MessageBox.Show(result);
};

// 调用WCF服务的同步方法
client.MyMethodCompleted += (sender, e) =>
{
    if (e.Error == null)
    {
        // 在这里处理同步方法的结果
        callback(e.Result);
    }
    else
    {
        // 在这里处理异常情况
        MessageBox.Show(e.Error.Message);
    }
};

// 调用同步方法
client.MyMethodAsync();

在上面的示例代码中,我们首先创建了一个WCF服务代理,然后定义了一个异步调用的委托,该委托将在异步调用完成后被调用。接着,我们调用了WCF服务的同步方法,并在方法完成后处理了结果。最后,我们调用了同步方法的异步版本,以便在异步调用完成后执行委托。

需要注意的是,在使用异步编程模型时,我们需要确保在异步调用完成后,才能处理结果或异常情况。这可以通过使用事件和委托来实现。

推荐的腾讯云相关产品:

  • 腾讯云WCF:腾讯云WCF是一种基于云计算的WCF服务,可以帮助用户快速构建和部署WCF服务。
  • 腾讯云Silverlight:腾讯云Silverlight是一种基于云计算的Silverlight应用程序,可以帮助用户快速构建和部署Silverlight应用程序。

产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WCF技术剖析之十一:异步操作WCF中的应用(下篇)

说完了客户端的异步服务调用(参阅WCF技术剖析之十一:异步操作WCF中的应用(上篇)),我们来谈谈服务端如何通过异步的方式为服务提供实现。...一、异步操作的定义和实现原理 实现WCF异步服务操作模式在编程具有一些限制:异步服务操作是通过两个配对的方法实现的,并且采用典型的异步操作命名方式:BeginXxx/EndXxx。...得到相应的MethodInfo对象后,同样通过反射调用服务实例。 二、如何创建异步服务 了解了异步操作的定义和具体的实现原理之后,我们通过一个简单的实例演示异步操作WCF应用中的实现。...本例子中,我们通过服务调用来读取服务端的文件,实现文件读取操作的时候,采用异步文件读取方式。 先来看看服务契约的定义。...服务契约通过接口IFileReader定义,基于文件名的文件读取操作异步的方式定义BeginRead和EndRead方法中。

770100

利用WCF改进文件流传输的三种方式

WCF跨域传输使用了两种模型的方法调用:一种是同步模型,这种模型显然对那些需要大量操作时间的方法调用(如从数据库中获取大量数据时)是一种痛苦的选择。...2、 基于同步传输的异步回调模型: 同步传输是指方法调用过程中一直阻塞到方法调用结束返回结果才会让程序继续向前执行,这种行为比较耗费资源,因为网络访问等待方法完成的时间内是阻塞的。...具体是每个操作契约中可以选择生成异步方法调用,具体是同步方法的前面加上 IAsyncResult Begin….....2.1定义契约和实现相应的同步方法 这里服务契约中定义了相应的同步方法,用这个调用FileStream类的同步方法Read()和Write()方法对文件进行读写操作,以实现将文件传输到服务的机器。...这只调用了文件操作异步处理。第二种模式一样这也是采用线程池来完成的。这实际是利用了文件流的异步方法

1.3K60

WCF系列教程之客户端异步调用服务

本文参考自http://www.cnblogs.com/wangweimutou/p/4409227.html,纯属读书笔记,加深记忆 一、简介 在前面的随笔中,详细的介绍了WCF客户端服务的调用方法,...注意这里的异步是完全针对客户端而言的,与WCF服务契约方法是否异步无关,也就是不改变操作契约的情况下,我们可以用同步或者异步的方式调用WCF服务。 二、操作示例 ?...,点击高级设置,勾选生成异步操作选项,生成客户端代理类和配置文件代码后,完成Client对服务的调用. ?...Console.WriteLine("此字符串调用方法前输出,说明异步调用成功!")...,完成对服务端服务的异步吊用 新建名为Client1的客户端控制台程序,通过svcutil.exe工具生成的客户端代理类,,异步调用WCF服务 (1)、打开cmd,输入cd C:\Program Files

1.2K60

WCF客户端运行时架构体系详解

三、 客户端操作(ClientOperation) 一、创建ChannelFactory 服务调用的本质实际是针对服务的某个终结点的调用,说得具体地应该是:客户端通过相匹配的终结点调用服务的终结点...此外,几乎所有的WS-*规范WCF的实现都是通过自定义信道来控制消息交换来完成的,所以这也要求客户端和服务端必须具有对等的信道设置; 契约(Contract):契约最终决定了基于某个操作的服务调用应该采用的消息交换模式...,我们通过应用OperationContractAttribute特性将定义契约接口或类中的某个方法定义成服务操作。...而SyncMethod和BeginMethod/EndMethod则表示同步异步调用时对应的MethodInfo对象。...关于具有异步模式的操作定义,请参阅《WCF技术剖析(卷1)》第4章《服务契约(Service Contract)》。

1.3K110

快速入门系列--WCF--01基础概念

契约其实就是一个生活中的概念,是一种双边和多边的协议,WCF中,其保证了无论服务的实现有任何的改变,而服务的消费者始终可以通过契约约定方式来调用服务。...多线程和异步操作 《CLR via C#》中,将操作分为计算限制的和I/O限制的,一般来说,WCF中主要涉及到I/O限制的操作,这种类型的操作主要是通过异步模型来提高其并发性。...这3中场景包括:异步的信道调用,客户端可以通过代理对象异步调用信道;单向消息交换,客户端的信道通过单向的消息交换模式向服务端发送消息,发送立刻返回;异步服务实现,服务端具体实现服务操作时,采用异步调用的方式...异步服务代理的创建,可以通过添加服务引用时通过高级选项添加生成异步操作选项,之后可以通过使用BeginXX/EndXX方法、回调和事件注册等方式使用异步服务代理类。...而异步的服务实现可以服务接口中将原有方法修改为BeginXXX/EndXXX形式的异步方法名,并将OperationContract契约的AsyncPattern属性设置为true即可。

1K100

WCF技术剖析(卷1)之目录

4.2.2  为终结点指定契约            4.2.3  服务契约的继承            4.2.3  操作重载与操作选择        4.3  消息交换模式(MEP)与服务操作...            4.3.1  请求-回复模式下的服务契约操作            4.3.2  单向(One-way)模式下的服务契约操作            4.3.1  双工模式下的服务契约操作...        4.4  多线程与异步操作            4.4.1  异步信道调用            4.4.2  异步服务实现 第5章  序列化与数据契约 (Serialization...6.3.2  案例演示6-2:基于消息契约方法调用是如何格式化成消息的?       ...            8.1.2  通过自定义RealProxy实现方法调用的劫持(Interception)            8.1.3  案例演示8-1:通过自定义RealProxy实现日志功能

92290

WCF技术剖析(卷1)》(修订版)目录

客户端指定地址 2.4.3. 地址报头 2.3. 端口共享 2.3.1. 端口共享WCF中的意义何在? 2.3.2. 基于HTTP|HTTPS的端口共享 2.3.3....消息交换模式与服务操作 4.4.1. 请求-回复模式 4.4.2. 单向模式 4.4.3. 双工模式 4.4.4. 实例演示:通过双工通信实现回调 4.5. 多线程与异步操作 4.5.1....异步服务调用 4.5.2. 异步服务实现 4.6. 操作的选择与执行 4.6.1. DispatchOperation与ClientOperation 4.6.2. 操作的选择 4.6.3....数据契约的等效性 5.6.2. 数据成员的添加 5.6.3. 数据成员的删除 5.6.4. 数据契约代理 5.7. 序列化WCF框架中的实现 5.7.1. 消息格式化器 5.7.2....单例模式下的并发与同步 9.4. 会话 9.4.1. 客户端识别机制 9.4.2. 会话契约 9.4.3. 会话绑定 9.5. 会话模式 9.5.1.

1.1K80

WCF服务应用protobuf

通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。...protobufgoogle中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息google这样的大规模应用中是至关重要的。...TCP网络编程中这是必须面对的问题。tcp网络编程中,要反序列化业务消息,就要先知道业务数据的大小。而且实际应用中可能在一个发送操作中,发送多个业务消息,而且每个业务消息的大小、类型都不一样。...但对很多应用这样的作法显得比较多余,比如发送一个大的文件,一般是接收方从协议栈收到多少数据就写多少数据到磁盘,这是一种边接收边处理的流模式,这种模式基本和每次收到的数据量没有关系。...一个最小的可以工作的例子就是protobuf-net提供的(client, server),它使用的是共享契约的方式,通过WCF的配置方式,添加一个Endpoint-behavior,引用一个自定义的WCF

75260

WCF操作的分界于调用顺序和会话的释放操作分界实例停止

操作分界 WCF操作契约的设计中,有时会有一些调用顺序的业务,有的操作不能最先调用,有的操作必须最后调用,比如在从一个箱子里拿出一件东西的时候,必须先要执行打开箱子的操作,而关上箱子的操作应该在一切工作完成之后再被执行...此外,修改了默认值之后,在装在服务的时候,WCF会去验证服务契约是否被定义为SessionMode.Required,如果不是,WCF会抛出InvalidOperationExample异常。...Attribute和不去添加它是一样的含义,只不过看起来更加清晰一点 有一点需要注意的是,参照以上的契约定义,Close调用执行完之后,WCF异步的释放对象并且关闭会话,客户端将不能再通过当前代理调用服务中的操作...BeforeCall:将在调用当前操作之前,WCF会释放当前的服务实例,然后创建一个新的实例取代它,然后在这个新的实例上调用方法; AfterCall:将在调用当前操作之后释放当前服务实例; BefireAndAfterCall...:它是对前两种设置的一种补充,OperationBehavior如果应用了这个值,那么当前方法可以标记了BeforeCall或者None的方法之后调用,也可以在在标记了AfterCall或者None的方法之后调用

77360

WCF技术剖析之八:ClientBase中对ChannelFactory的缓存机制

实际,即使通过ClientBase对象进行服务调用,其内部也是调用ChannelFactory创建的服务代理。...构造函数中传入绑定对象构建ClientBase; ClientBase开启(调用Open方法)之前,访问如下三个只读属性:ChannelFactory、Endpoint和ClientCredential...或者创建ClientBase之后显式调用Open方法开启ClientBase对象。...WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理 WCF技术剖析之十一:异步操作WCF中的应用(上篇) WCF技术剖析之十一:异步操作WCF中的应用(下篇) WCF技术剖析之十二:数据契约...(上篇) WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇) WCF技术剖析之十五:数据契约代理(DataContractSurrogate)序列化中的作用 WCF技术剖析之十六:数据契约的等效性和版本控制

897110

WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)

.NET Framework 2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型类型、泛型委托和泛型方法。序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念。...由于范型类型和集合类型序列化和反序列化具有一些特殊的行为和规则,在这篇文章中,我将会对此进行详细介绍。上篇先来说所泛型数据契约。...真正创建范型对象或者调用方法的时候,才指定其具体的类型。 就实现来说,泛型是CLR和编程语言(或者是基于编程语言的编译器)共同实现的一种特殊机制;就泛型的概念来说,这是面向对象的范畴。...所以,从某种意义讲,WCF的一个重大的作用就是弥合面向对象编程(OOP)和面向服务架构(SOA)之间的差异。我们现在就来看看WCF做了些什么使我们能够以泛型类型的形式来定义数据契约。...WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理 WCF技术剖析之十一:异步操作WCF中的应用(上篇) WCF技术剖析之十一:异步操作WCF中的应用(下篇) WCF技术剖析之十二:数据契约

1.2K90

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制

服务调用的目的体现在对某项服务功能的消费,而功能的实现又定义相应的服务类型中。不论WCF服务端框架处理服务调用请求的流程有多么复杂,最终都落实在服务实例的激活和操作方法的执行上面。...客户端正常调用服务端操作是一种服务调用;服务端回调客户端操作也可以看成是一种服务调用。因此,通过实例上下文对回调对象和服务实例进行封装本质是一致的。 实例上下文对服务实例的封装大体可以通过图1表示。...而通过SynchronizationContext属性则可以设置或获取用于异步操作同步上下文,比如服务操作须要在非UI线程下操作一个Windows Form的控件,你就需要基于UI线程的同步上下文(SynchronizationContext...图4 会话模式下服务代理与服务实例上下文之间的关联 三、 实例服务行为 介绍服务寄宿的时候,我们谈到过WCF下“契约(Contract)”和“行为(Behavior)”的区别:契约是涉及双边的描述(契约是服务的提供者和服务消费者进行交互的手段...客户端行为体现的是WCF如何进行服务调用的方式,而服务端行为则体现了WCF的请求分发方式。所以服务契约会通过元数据对外发布,而服务行为则对于客户端是透明的。

95890

快速入门系列--WCF--08扩展与新特性

ServiceDescription服务描述包含一组终结点和服务行为列表,而终结点包含服务地址、绑定和契约信息,契约中则包含操作契约行为,操作信息中包含操作行为。...分发操作Servicehostk开启后,有OperationDescription转化来的,附加在其的可扩展组件包括调用上下文初始化器CallContextInitializer,参数检验器ParameterInspector...,用于消息序列化和反序列化的消息格式化器DispatchMessageFormatter,用于操作方法的执行的操作调用器OperationInvoker。...通过调用构造函数创建一个ChannelFactory对象后,WCF会根据指定的终结点创建一个ServiceEndpoint对象,其整个结构如下图示。...通过定义四种行为对WCF扩展,这4中行为分别是服务行为、终结点行为、契约行为和操作行为,它们具有相同的4个方法Validate、AddBindingParameters、ApplyDispatchBehavior

60970

WCF技术剖析之二十七: 如何将一个服务发布成WSDL

基于WS-MEX的终结点和一般意义的终结点一样由地址、绑定和契约三部分组成。...总的来说,MEX终结点和一般意思的终结点并没有本质的不同,也是由地址、绑定和契约三要素构成。...实际IMetadataExchange是WCF内部定义的一个特殊服务契约接口,定义System.ServiceModel.Description命名空间下,下面是IMetadataExchange的定义...Get服务操作,其中Get方法是正常的同步模式服务操作,而BeginGet/EndGet是按照标准的异步操作模式对Get服务操作的定义(关于异步服务操作模式,WCF技术剖析(卷1)》的第4章有详细的介绍...介绍WS—MEX的时候,我们提到过WS-MEX支持两种形式的元数据获取方式:WS-Transfer Get操作请求和Get Metadata操作请求。

71580

WCF技术剖析》博文系列汇总

[第11篇] 异步操作WCF中的应用[上篇][下篇] 按照操作执行所需的资源类型,我们可以将操作分为CPU绑定型(CPU Bound)操作和I/O绑定型(I/O Bound)操作。...对于I/O绑定型操作,我们可以充分利用多线程的机制,让多个操作自己的线程并发执行,从而提高系统性能和响应能力。服务调用就是典型的I/O绑定型操作,所以多线程服务调用中具有广泛的应用。...本篇文章中,我们专门来讨论多线程或者是异步操作WCF中的具体应用。...WCF 提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。本篇文章我们将对各种编码方式进行消息的讨论。 从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。...不论WCF服务端框架处理服务调用请求的流程有多么复杂,最终都落实在服务实例的激活和操作方法的执行上面。

1.4K100

WCF技术剖析之十五:数据契约代理(DataContractSurrogate)序列化中的作用

GetDataContractType:获取进行序列化、反序列化或者数据契约导入导出基于的数据契约的类型,实现此方法相当于实现了类型的替换; GetObjectToSerialize:序列化之前获取序列化的对象...ASP.NET兼容模式创建支持会话(Session)的WCF服务 WCF技术剖析之六:为什么基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效 WCF技术剖析之七:如何实现...WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理 WCF技术剖析之十一:异步操作WCF中的应用(上篇) WCF技术剖析之十一:异步操作WCF中的应用(下篇) WCF技术剖析之十二:数据契约...(Data Contract)和数据契约序列化器(DataContractSerializer) WCF技术剖析之十三:序列化过程中的已知类型(Known Type) WCF技术剖析之十四:泛型数据契约和集合数据契约...(上篇) WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇) WCF技术剖析之十五:数据契约代理(DataContractSurrogate)序列化中的作用 WCF技术剖析之十六:数据契约的等效性和版本控制

81380

WCF IIS 部署错误处理

做Web接口,原来一直用Web Service的,但是.Net 3.5后,Web Service变成了WCF。...代码的编写上,把WebMethod特性改成了OperationContract,然后把方法分拆到契约接口和实现方法。然后部署,不再依赖于IIS,但如果使用IIS,部署反倒麻烦了。...将WCF应用程序代码拷贝到IIS目录下,然后打开IIS管理器,将其转换为Application。访问时出现了错误。protocolMapping配置节有问题。 原因在于,WCF是.Net3.5?...网上查找答案,有部署SilverLight遇到类似的问题。但是配置目录权限(给IISUser甚至是匿名用户添加了FullControl的权限)后,仍然没有效果。...我创建了一个解决方案,其中包含几个类库以及WCF服务,后来将解决方案目录转换为应用程序,然后浏览,然后找到了服务,点击报错,问题在于WCF服务项目的目录没有被转换,正确的是转换WCF服务。

1.4K70

让服务自动发送上下线通知

其中ByeOperation(同步)和BeginHelloOperation/EndHelloOperation(异步)基于服务上线的Hello通知,而ByeOperation(同步)和BeginByeOperation...由于通知都是单向的,所以两个操作的IsOneWay属性为True。服务契约的命名空间、操作的Action的值都与WS-Discovery 1.1规范一致。...下线通知的发送,所以我们调用构造函数来创建AnnouncementClient的时候需要指定一个具体的AnnouncementEndpoint对象或者置名称。...其中AnnounceOnline/ AnnounceOffline通过同步的方式实现/下线通知的发送,而异步方式则具有两个方式:一种是传统的Beging/End的方式,而另一种通过调用AnnounceOnlineAsync...我们可以客户端开启一个服务来服务监听目标服务发送的上下线通知,而WCF已经为了定义了这么一个服务,这就是具有如下定义的AnnouncementService。

88570
领券