新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCF行為控制實質(zhì)內(nèi)容簡要概述
WCF開發(fā)插件的出現(xiàn),給開發(fā)人員帶來了非常不一樣的體驗。尤其是它獨特的特點更是令開發(fā)人員眼前一亮。在這里先來了解一下WCF行為控制的基本內(nèi)容。在完成服務契約設計和服務實現(xiàn)后,我們可以設置該服務的運行期行為(Behavior)。這些WCF行為控制包括 Service Behaviors、Endpoint Behaviors、Contract Behaviors、Operation Behaviors。#t#

以下就常用的行為使用,做些演示。
WCF行為控制之ServiceBehaviorAttribute & OperationBehaviorAttribute
這是兩個最常用的行為控制特性,可用于控制:
服務對象生命周期。
并發(fā)管理。
異步通訊。
配置文件參數(shù)。
事務。
元數(shù)據(jù)轉(zhuǎn)換。
會話(Session)周期。
- [ServiceContract]
- public interface ICalculate
- {
- [OperationContract]
- int Add(int a, int b);
- }
- [ServiceBehavior(InstanceContextModeInstanceContextMode=
InstanceContextMode.PerCall)]- public class CalculateService : ICalculate
- {
- public int Add(int a, int b)
- {
- Console.WriteLine(this.GetHashCode());
- return a + b;
- }
- }
- public class WcfTest
- {
- public static void Test()
- {
- AppDomain.CreateDomain("Server").DoCallBack(delegate
- {
- ServiceHost host = new ServiceHost(typeof(CalculateService));
- host.AddServiceEndpoint(typeof(ICalculate), new WSHttpBinding(),
"http://localhost:8080/calc");- host.Open();
- });
- ChannelFactory
factory = new ChannelFactory (new WSHttpBinding(), - "http://localhost:8080/calc");
- ICalculate o = factory.CreateChannel();
- Console.WriteLine(o.Add(1, 2));
- Console.WriteLine(o.Add(1, 2));
- factory.Close();
- }
- }
輸出:
- 30136159
- 3
- 41153804
- 3
WCF行為控制之ServiceMetadataBehavior
用于開啟元數(shù)據(jù)獲取功能。只有使用該行為,客戶端才能通過 Svcutil.exe 或其他工具獲取服務信息,進而生成客戶端代理文件。
- ServiceHost host = new ServiceHost(typeof(CalculateService));
- host.AddServiceEndpoint(typeof(ICalculate), new BasicHttpBinding(),
"http://localhost:8080/calc");- ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
- behavior.HttpGetEnabled = true;
- behavior.HttpGetUrl = new Uri("http://localhost:8080/calc");
- host.Description.Behaviors.Add(behavior);
- host.Open();
WCF行為控制之ServiceDebugBehavior
開啟調(diào)試功能,如將服務器端的異常信息直接傳送給客戶端。
- ServiceHost host = new ServiceHost(typeof(CalculateService));
- host.AddServiceEndpoint(typeof(ICalculate), new WSHttpBinding(),
"http://localhost:8080/calc");- host.Description.Behaviors.Find
()
.IncludeExceptionDetailInFaults = true;- host.Open();
當前標題:WCF行為控制實質(zhì)內(nèi)容簡要概述
文章出自:http://fisionsoft.com.cn/article/cosigdc.html


咨詢
建站咨詢
