Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
WCF»ù´¡£¨ÉÏ£©
 
×÷ÕߣºgameWYD À´Ô´£ºCSDN ·¢²¼ÓÚ£º2015-12-17
  4464  次浏览      27
 

WCF(Ò») Windows Communication Foundation ¸ÅÊö

WCF±»ÍƳöÀ´ºÜ¾ÃÁË£¬µ«ÊǶÔÓÚ¸Õ¸Õ½Ó´¥WCFµÄÈËÃÇÀ´Ëµ£¬Ïë±Ø»áÓÐÒÔÏÂÎÊÌ⣺

WCFÊÇʲô£¿ÎªÊ²Ã´ÎÒÃÇÐèÒªWCF£¿WCFÄܸøÎÒÃÇ´øÀ´Ê²Ã´£¿Ñ§Ï°WCFµÄÄÑÒ×¶ÈÈçºÎ£¿

ÒÔÉÏÕâЩÎÊÌâµÄ´ð°¸ÔÚÍøÉÏÒѾ­ºÜ¶à½éÉÜÁË£¬ÎÒÔڴ˱¾²»±ØÔÙÀË·Ñ¿ÚÉֻ࣬ÊÇ´ó¸ÅÌáһϡ£

WCF: Windows Communication Foundation.´ÓÃû×Ö¿ÉÒÔ¿´³ö£¬ÕâÊÇÒ»ÏîºÍͨÐÅÃÜÇÐÏà¹ØµÄ¼¼Êõ¡£ÎÒÃÇÖªµÀÈí¼þÉè¼Æµ½´¦ÊÇͨÐÅ¡£µ±È»ÎÒÃDZØÐëѧÁËÒԺ󣬲ÅÄܸüºÃµÄÖªµÀËü¡¢ÔËÓÃËü£¬¶ø²»Äܵ¥µ¥´ÓËüµÄÃû×Ö´§²âËüµÄÍþÁ¦ÈçºÎ¡£

WCFÌṩ¸øÁËÎÒÃÇÒ»ÖÖÃæÏò·þÎñ£¨SOA£©µÄ³ÌÐòÉè¼ÆµÄ½â¾ö·½°¸£ººÎÎªÃæÏò·þÎñ£¿Ö®Ç°ÓÐʹÓùý.NET Web Service ¿ª·¢µÄÅóÓÑ£¬ºÜÈÝÒ×Àí½âÃæÏò·þÎñÊÇÕ¦»ØÊ¡£.Net Web ServiceÒ²ÊǸüÔçµÄʱºò΢ÈíÌá³öµÄÒ»ÖÖÃæÏò·þÎñµÄ½â¾ö·½°¸¡£ÃæÏò·þÎñÊÇÒ»ÖÖ±ê×¼£¬²»Í¬µÄ¹«Ë¾¿ÉÒÔ¸ø³ö¸÷×ÔµÄʵÏÖ¿ò¼Ü¡£µ¥´¿µÄ½²SOA£¬±Ï¾¹Ì«³éÏóÁË¡£Ñ§Ï°Ò»ÏÂSOAµÄÒ»ÖÖʵÏÖ±ÈÈç.Net Web Service »òWCFÒÔºó£¬ÏàÐŲ»ÓÃÈκÎÎÄ×Ö¶¨Ò壬ÄãÒ²»áÉî¿ÌµØÀí½âSOA¡£ËùÒÔ£¬ºÎÎªÃæÏò·þÎñ£¿ÕâÀï²»½âÊÍ£¬µÈÄãѧһ¶Îʱ¼äµÄWCF£¬Äã×Ô¼º¾ÍÓдð°¸ÁË£¬ÕæµÄ£¬ºÇºÇ¡£

WCFÌṩÁËͳһµÄͨÐÅÄ£ÐÍ£ºÒÔǰÎÒÃÇдͨÐÅ¿ÉÒÔÊÇ£ºTCP/UDP£¬SocketµÈÕâЩ·½Ê½£¬ÔÚWCFÖб»Í³Ò»ÁË¡£ÖÁÓÚÈçºÎͳһ£¿ÕâÀïÏȲ»ËµÁË¡£ËùÒÔ£¬µ±ÄãÔÚÏîÄ¿ÖÐͬʱʹÓÃÁ˶àÖÖͨÐÅ·½Ê½Ê±£¬¿ÉÒÔ¿¼ÂÇʹÓÃWCFÁË¡£

ÒÔǰûÓнӴ¥¹ýWeb Service ¿ª·¢½ÓÊÜWCFÒ²²»ÊÇÄÑÊ£¬ÏàÐÅÎÒ£¡

Õâ´Î£¬ÎÒÃÇÖ»×öÒ»µãWCFµÄ¸ÅÊö£¬¸üΪÏêϸµÄ֪ʶµ½ºóÃæÔÙÂýÂýÕ¹¿ª¡£±ßѧϰ£¬±ß½»Á÷¡£

1. ´ò¿ªVS 2010 -->file-->new Project ,Ñ¡ÔñC#ÏÂÃæµÄWCF£¬Ñ¡ÔñWCF Library¡£ÈçÏÂͼ£º

2.´ËʱÓÐÁËIService ÎļþºÍÒ»¸öService Îļþ¡£ServiceÎļþʵÏÖµÄIServiceÖеÄÁ½¸öº¯Êý£ºGetDataº¯ÊýºÍGetDataUsingDataContractº¯Êý¡£ÖÁÓÚÕâÁ½¸öº¯ÊýÊǸÉÂïµÄ£¿Ïë±Ø²»ÓÃ˵´ó¼Ò¶¼ÄÜ¿´¶®µÄ¡£Ö®ºóÏêϸ˵Ã÷ËûÃǵĽÇÉ«¡£ÕâÀïÒ²²»ÐÞ¸ÄÀàÃûºÍº¯ÊýÃûÁË£¬·½ÃæÆð¼û¡£

3.°´F5ÔËÐгÌÐò£¬´Ëʱ´ò¿ªÁËÒ»¸öWCF µÄÒ»¸ö²âÊÔ ´°¿Ú¡£ÈçÏÂͼ£ºÏȲâÊÔGetDataº¯Êý

²âÊÔ½á¹û£º

ͬÑùµÄ·½·¨²âÊÔGetDataUsingDataContractº¯Êý£º½á¹ûÈçÏÂͼ

4.ÉÏÃæÍê³ÉÁ˶ÔWCFµÄº¯Êý¹¦Äܵļòµ¥²âÊÔ£¬ÄÜ˵Ã÷µÄÊÇServiceÕýÈ·µØÊµÏÖÁËIService¡£½ÓÏÂÀ´ÎÒÃÇÐèÒª½«Õâ¸öWCF²¿Êðµ½Ò»¸öWeb SiteÖС£

ÔÚ½â¾ö·½°¸ÉÏÃæÓÒ»÷£ºNew -->New Web Site ÈçÏÂͼ£º

ÐÞ¸Äweb siteÏîÄ¿ÖеÄService.svc ÎļþÀïÃæµÄ Service="WcfFirstDemoServiceLib.Service1" £¨ÆäÖÐÒâ˼¾ÍÊÇÒÑÃüÃû¿Õ¼ä¼ÓÀàÃûµÄ·½Ê½Ö¸¶¨serviceµÄÃû×Ö£©

5.Ìí¼ÓÒ»¸öwinForm³ÌÐò £¬ÓÃËüÀ´µ÷ÓÃWCFµÄº¯Êý¡£

6.¸øwinForm ÏîÄ¿Ìí¼Óweb ÒýÓãº

7.ÔÚForm1ÉÏÃæÌí¼Ó¼¸¸ö¿Ø¼þ£¬È»ºóÔÙÔÚForm1.csÖÐÌí¼ÓÏÂÁм¸ÐдúÂ룺

Form1.cs

8.Ctrl+F5 ÔËÐУº

˵Ã÷:ÕâÀïÖ»ÊǸÅÊöWCF,ËùÒÔÈ«²¿ÔÚʹÓÃWCFµÄĬÈÏÉèÖã¬Ò²Ã»ÓÐÏêϸ˵Ã÷ÿһ²½µÄ×÷ÓÃÊÇʲô¡£Ö»ÊǸø³öÈý¸öÏîÄ¿£ºÏîÄ¿1ÊÇWCFµÄ¿âÒ²ÊÇWCF¹¦ÄܺËÐÄ¡£ÏîÄ¿2ÊÇWCFµÄhostÓÃÓÚÏòÍâ½ç·¢²¼WCFÌṩµÄ½Ó¿Ú£¨×¢£º½Ó¿ÚÕâÀïÖ¸ÌṩÁËÄÄЩº¯Êý¿É±»µ÷Óã©¡£ÏîÄ¿3ÊÇWCFµÄ¿Í»§¶ËÓÃÓÚµ÷ÓÃWCF¡£Æäʵ£¬ÕâÀïÒѾ­ÒþÔ¼ÌåÏÖ³öÒ»µãµã·Ö²¼Ê½Èí¼þ¼Ü¹¹µÄÒâ˼ÁË£ºÓÐרÃÅÌṩ¹¦ÄÜʵÏÖµÄÄ£¿é£¬ÓÐרÃÅÌṩ¶ÔÍ⹫¿ª½Ó¿ÚµÄÄ£¿é£¬ÓÐרÃÅ×÷Ϊµ÷ÓõÄÄ£¿é¡£

ºóÃæÏêϸWCFÿһ²¿·ÖµÄ¡£»¶Ó­¹Ø×¢£¡£¡

WCF(¶þ) Contract

ÉÏÆªÖ»ÊǽéÉÜÁËWCFµÄ¸ÅÊö¡£¾ßÌåµÄÉèÖÃÈ«ÊÇʹÓÃĬÈÏ£¬Õ⵱Ȼ²»¿ÉÄÜÂú×ãÎÒÃÇ¿ª·¢µÄÐèÒª¡£Èç¹û×ÐϸÀíÒ»ÀíµÄ»°£¬Äã»á·¢ÏÖWCFÀïÃæµÄÉèÖÃÆäʵ²»Ëã¶àµÄ(ÓëSharePoint±È½ÏµÄ»°)¡£´ÓÕâÆª¿ªÊ¼£¬ÎÒÃÇÒ»µãÒ»µãÀ´Õ¹¿ªÑ§Ï°¡£Õâ´ÎÏÈÌá×î×î³£ÓõÄContract¡£

ContractÓÐÈË·­ÒëΪ£ºÐ­¶¨,ÆõÔ¼¡£

WCFÖÐÓÐËÄÖÖcontract: ·Ö±ðÊÇ:1.Service Contract. 2.Data Contract. 3. Fault Contract. 4.Message Contract.

»¹ÄÃÉÏÆªÖеÄÀý×Ó(Æäʵ¾ÍÊÇÓÐVisual Studio2010ÌæÎÒÃÇĬÈÏÉú³ÉµÄ´úÂëÁË)˵Ê£º

1.Service Contract¹²·ÖΪÁ½¸ö²¿·Ö£º¶¨Ò岿·ÖºÍʵÏÖ²¿·Ö¡£

 [ServiceContract]
2 public interface IService1
3 {
4 [OperationContract]
5 string GetData(int value);
6
7 [OperationContract]
8 CompositeType GetDataUsingDataContract(CompositeType composite);
9
10 }

ÕâÀïIService¾ÍÊÇÒ»¸öservice contractµÄ¶¨Ò岿·Ö£¬Ö¸¶¨ÁËÄÄЩº¯Êý£¨Operation£©ÏòÍ⹫¿ª£¨¼´£º¿É¹©Clientµ÷Óã©¡£±»[OperationContract]ÐÞÊεĺ¯Êý¿ÉÒÔ±»¿Í»§¶Ë£¨Client£©µ÷Óá£

public class Service1 : IService1
2 {
3 public string GetData(int value)
4 {
5 return string.Format("You entered: {0}", value);
6 }
7
8 public CompositeType GetDataUsingDataContract(CompositeType composite)
9 {
10 if (composite == null)
11 {
12 throw new ArgumentNullException("composite");
13 }
14 if (composite.BoolValue)
15 {
16 composite.StringValue += "Suffix";
17 }
18 return composite;
19 }
20 }

Service1ʵÏÖÁËIService½Ó¿Ú£¬ÊÇService Contract µÄʵÏÖ²¿·Ö¡£VS×Ô¶¯Éú³ÉµÄ´úÂëÌ«¼òµ¥ÁË£¬²»½âÊÍÁË¡£ÕâÀïΪÁ˾¡¿ÉÄܼòµ¥µØËµÃ÷ÎÊÌâ¡£¾ßÌåÏîÄ¿ÖУ¬Äã¿ÉÄÜÐèÒªÁ¬½ÓÊý¾Ý¿âÔö¡¢É¾¡¢¸Ä¡¢²éÊý¾Ý£¬»ò¶ÔÊý¾Ý°´n¶à¸´ÔÓµÄÒµÎñ¹æÔò½øÐÐÊý¾Ý´¦ÀíÒԺ󣬷µ»Ø¸øclient£¬µÈ¡£
[ServiceContract] Attribute ¿ÉÒÔÓÐÒÔÏÂProperty µÄ:

[OperationContract] Attribute ¿ÉÒÔÓÐÒÔÏÂProperty µÄ:

Action	¶ÔÇëÇóÉèÖÃWS-Addressing µÄaction
AsynchPattern Ò첽ģʽ
HasProtectionLevel ÏûÏ¢ÊÇ·ñ¼ÓÃÜ£¬Ç©Ãû
IsInitiating ±íÃ÷¸Ãº¯Êý±»µ÷ÓÿªÊ¼Ê±ÊÇ·ñÒªÔÚserverÉÏÃæ³õʼ»¯Ò»¸ösession
IsOneWay ±íÃ÷º¯Êý±»clientµ÷ÓÃÒÔºó£¬clientÊÇ·ñ»áµÈ´ýº¯Êý·µ»Ø
IsTerminating ±íÃ÷¸Ãº¯Êý±»µ÷ÓýáÊøÊ±ÊÇ·ñÒªÔÚserverÉÏÃæ¹Ø±Õsession
Name ÉèÖú¯ÊýµÄÃû×Ö£¬ÔÚclient¶Ë¿É¼ûµÄÃû×Ö£¬Ä¬ÈϾÍÊǺ¯ÊýÃû×Ö
ProtectionLevel
ReplyAction ÉèÖú¯Êý·µ»ØÏûÏ¢µÄSOAP action

1.1 ÎÒÃÇÐÞ¸ÄÒ»ÏÂServiceµÄĬÈÏÃüÃû¿Õ¼ä,ʹËû¸ümake scene(ÓÐÒâÒå).

´ò¿ªÉÏÆªÖеĽâ¾ö·½°¸WcfFirstDemo.sln

ÓÒ¼üWebHostÏîÄ¿ÏÂÃæµÄÎļþ:Service.svc,ÈçÏÂͼ:

µã»÷Á¬½ÓÈçͼ:

µÃµ½ÈçͼЧ¹û:

 

ĬÈÏNamespaceÊÇhttp://tempuri.org/

΢Èí¹Ù·½½¨Òé:ÐÞ¸ÄServiceµÄNamespace,ʹÆä°üº¬:¹«Ë¾ÓòÃû+ÏîÄ¿Ãû+°æ±¾ºÅ(Èç:ÈÕÆÚ±íʾ°æ±¾ºÅ)

ÐÞ¸ÄÏîÄ¿:WcfFirstDemoServiceLibÏÂÃæµÄIService.cs´úÂëÈçÏÂ:

[ServiceContract(Namespace="http://wwww.cnblogs.com/WCF/2012/07/28")]
2 public interface IService1
3 {
4 [OperationContract]
5 string GetData(int value);
6
7 [OperationContract]
8 CompositeType GetDataUsingDataContract(CompositeType composite);
9
10 }

ÓÒ¼üÏîÄ¿WcfFirstDemoServiceLib Ñ¡ÔñÖØÐ±àÒë,³É¹¦ÒÔºó,ÖØÐÂÓÃä¯ÀÀÆ÷´ò¿ªservice.svc,µÃµ½ÈçÏÂͼ:

´ËʱÒѾ­¸Ä±äÁËServiceĬÈϵÄNamespaceÁË,client¶ËÐèÒª¸üÐÂÒ»ÏÂ,·ñÔòÔËÐÐclient¶ËÊǻᱨÒì³£µÄ.²Ù×÷ÈçÏÂͼ:

1.2ÐÞ¸ÄServiceµÄName.ĬÈÏÇé¿ö϶¨ÒåserviceµÄ½Ó¿Ú²¿·Ö(Èç±¾Àý:IService)µÄÃû×Ö¾ÍÊÇServiceµÄÃû×Ö.µ«ÓÐʱÐèÒªÈÃclient¿´µ½µÄserviceµÄÃû×Ö¸úserver¶Ë¿´µ½µÄµÄserviceÃû×Ö²»Ò»Ñù.

ÎÒÃÇÏÈ¿´Ò»ÏÂWCFClientÏîÄ¿ÏÂÃæµÄapp.config

ÐÞ¸ÄWcfFirstDemoServiceLibÏîĿϵÄIService.csÎļþ

[ServiceContract(Namespace="http://wwww.cnblogs.com/WCF/2012/07/28",Name="DemoService")]
2 public interface IService1
3 {
4 [OperationContract(Name="GetAge")]
5 string GetData(int value);
6
7 [OperationContract]
8 CompositeType GetDataUsingDataContract(CompositeType composite);
9
10 }

ÖØÐ±àÒëWcfFirstDemoServiceLibÏîÄ¿.¸üÐÂclient¶Ë¶ÔserviceµÄÒýÓÃ.´ËʱÄã»á·¢ÏÖclient¶Ëapp.configÎļþǰºó·¢ÉúÁ˱仯:

´ËʱWCFClientËùÉú³ÉµÄ´úÀíÀàµÄÃû×ÖÒ²»á±ä»¯,ÄãÐèÒªÐÞ¸ÄWCFClient

DemoService proxy = null;
1 private void Form1_Load(object sender, EventArgs e)
2 {
3 proxy = new DemoServiceClient("BasicHttpBinding_DemoService");
4
5 }
1 private void btnGetData_Click(object sender, EventArgs e)
2 {
3 this.tbOutputBox.Text = proxy.GetAge(Convert.ToInt32(this.tbInputbox.Text));
4 }

×¢:ÉÏÃæ´úÂëÖÐDemoService ¶ÔÓ¦server¶ËIService½Ó¿Ú;DemoServiceClient¶ÔÓ¦server¶ËµÄServiceÀà.

µ±client¶ËµÄapp.configÎļþÖÐÖ»°üº¬Ò»¸öendpointʱ,¿ÉÒÔÖ±½ÓÓÃproxy=new DemoServiceClient()´«¿Õ²ÎÊý,µ±È»Ò²¿ÉÒÔ´«Õâ¸öendpointµÄname½øÈ¥;µ«Êǵ±app.config°üº¬¶à¸öendpointʱ±ØÐë°ÑendpointµÄname´«½øÈ¥²ÅÄÜnew³öproxy¶ÔÏó.

2.DataContract.

WCFµÄServerºÍclientÖ®¼äÀûÓÃÌØ¶¨¸ñʽµÄMessage(ÏûÏ¢)½øÐÐͨÐŵġ£µ«ÊÇÎÒÃÇʹÓõĸ߼¶ÓïÑÔ£º²»ÂÛÔÚServer¶Ë»¹ÊÇÔÚclient¶Ë£¬ÎÒÃÇ´¦ÀíµÄÒµÎñÊý¾Ý¶¼±»·â×°³ÉÁ˶ÔÏó¡£ËùÒÔÏë°Ñserver¶ËµÄ¶ÔÏó´«Ë͵½client£¨»òÏà·´·½Ïò£©Ê±£¬ÎÒÃDZØÐëÓÐÄÜÁ¦°ÑÕâЩ¶ÔÏóת»»³ÉÌØ¶¨¸ñʽµÄmessage£¬µ½ÁíÒ»¶Ë½ÓÊÕµ½messageºóÔÙ°ÑËüת»Ø³É¶ÔÏó¡£C#µÄ»ù´¡ÀàÐÍ£¨Èçint,string,float,boolµÈ£©¿ÉÒÔ×öµ½ÕâÒ»µã¡£ÒòΪһµ©È·¶¨ÁËServer¶Ë»òclientËùÓõıà³ÌÓïÑÔ£¬¾Í¿ÉÒÔÈ·¶¨ÕâЩ»ù´¡ÀàÐ͵ÄÄÚ´æÕ¼ÓÃÇé¿ö£¨ÀýÈ磺һ¸öServer¶Ë¶¨ÒåµÄint±äÁ¿ÔÚC#ÖÐÕ¼Óöà´óÄÚ´æ¿Õ¼äÊÇÒÑÖªµÄ£¬ÄÇôclient¶Ë¼´±ãʹÓõÄÊÇÆäËûÓïÑÔÒ²ÍêÈ«¿ÉÒÔ¼ÆËã³ö¸Ã±äÁ¿µÄÄÚ´æÕ¼ÓÃÇé¿ö£©¡£¿ÉÊÇÎÒÃÇ×Ô¼º¶¨ÒåµÄÀàÐÍ¿ÉÊÇÎ廨°ËÃÅÁË£¨±ÈÈ磺server¶Ë¶¨ÒåµÄPersonÀànew³öµÄobjectµ½µ×Õ¼Óöà´óÄÚ´æ¿Õ¼ä£¬¾ÍËãServer¶ËÓëclient¶ËʹÓÃͬһÖÖÓïÑÔ£¬Client¶ËÊDz»ÖªµÀµÄPersonÀàµÄ¶ÔÏóµÄÄÚ´æÕ¼ÓÃÇé¿öµÄ¡££©

Óöµ½ÕâÖÖÇë¿îÏ£¬ÎÒÃÇÔõô°ìÄØ£¿Õâʱ¾ÍÂÖµ½[DataContract]Â¶ÃæÁË¡£

ServiceContract×öµÄ¹¤×÷ÊÇÖ¸¶¨serviceÏòclientÌṩÁËÄÄЩº¯Êý¿É¹©µ÷Óá£DataContract×öµÄ¹¤×÷¾ÍÊÇÖ¸¶¨ÔÚServer¶ËÓëclient¶ËÖ®¼ä¿ÉÒÔ´«Ë͵ÄÊý¾Ý¡£[DataContract]µÄ×÷ÓþÍÊÇÖ¸¶¨µ±ÐèÒª´«ËÍij¸öÀࣨÈ磺PersonÀࣩµÄ¶ÔÏóʱ£¬½«¸Ã¶ÔÏóת»¯³ÉΪXML.½ÓÊÜ·½½Óµ½XMLÒÔºó£¬ÔÙ°´Í¬ÑùµÄ·½Ê½»¹Ô­³É¶ÔÏó¡£

[DataContract]Attribute ±êÔÚclass¶¨ÒåÉÏÃæÒ»ÐС£[DataMember]Attribute±êÔÚProperty¶¨ÒåÉÏÃæÒ»ÐУ¬field²»ÐèÒªAttributeÐÞÊΡ£

[DataContract]
2 public class CompositeType
3 {
4 bool boolValue = true;
5 string stringValue = "Hello ";
6
7 [DataMember]
8 public bool BoolValue
9 {
10 get { return boolValue; }
11 set { boolValue = value; }
12 }
13
14 [DataMember]
15 public string StringValue
16 {
17 get { return stringValue; }
18 set { stringValue = value; }
19 }
20 }

[DataContract]Attribute ¿ÉÒÔÏñ[ServiceContract]Ò»ÑùÉèÖÃNameºÍNamespace.

[DataMember] Attribute ¿ÉÒÔÓÐÒÔÏÂÊôÐÔ£º

EmitDefaultValue	ÉèÖÃÒ»¸öĬÈÏÖµ
IsRequired ½øÐÐÐòÁл¯/·´ÐòÁл¯Ê±¸ÃÖµÒ»¶¨²»¿ÉΪ¿ÕÖµ
Name PropertyµÄÃû×Ö
Order ÉèÖýøÐÐÐòÁл¯/·´ÐòÁл¯µÄ˳Ðò

2.1ÐÞ¸ÄDataContractµÄĬÈÏnamespace ,

[DataContract(Namespace = "http://wwww.cnblogs.com/WCF/2012/07/28", Name = "CompositeTypeDemo")]
2 public class CompositeType
3 {
4 bool boolValue = true;
5 string stringValue = "Hello ";
6
7 [DataMember(Name="GetBool")]
8 public bool BoolValue
9 {
10 get { return boolValue; }
11 set { boolValue = value; }
12 }
13
14 [DataMember(Name="GetString")]
15 public string StringValue
16 {
17 get { return stringValue; }
18 set { stringValue = value; }
19 }
20 }

ÕâÑùÔÚclient¶Ë¿´µ½µÄÀà(class)Ãû,º¯ÊýÃûÓëserver¿´µ½µÄ¾Í²»Ïàͬ.

3.Fault Contract.

ÔÚWCFÖд¦ÀíÒì³£(Exception)µÄ·½·¨ÓÐÐ©ÌØÊâ.ÎÒÃDz»Äܵ¥´Óserver´¦Àíexception,ÐèÒª½øÒ»²½½«Exception´Óserver´«Ë͵½client. ÔÚºóÃæÎÒÃÇÔÙµ¥¶ÀÌÖÂÛWCFµÄException´¦Àí.

4. Message Contract.

Message ContractÓëData Contract¶¼ÊÇ×÷ÓÃÔÚ´«Ë͵ĶÔÏó(object)ÉÏÃæ.

²»Í¬µÄÊÇ:

datacontractÊǽ«objectÐòÁл¯»¯Îªxml. ʵÏÖobjectµÄ¸÷¸öpropertyÓëxml Îı¾Öи÷¸önode(½Úµã)µÄ¶ÔÓ¦);

messagecontract½«¶ÔÏó×é×°³Émessage(Ö¸¶¨MessageµÄHeader,body).ʵÏÖµÄÊÇobject¸÷¸öpropertyÓëÏûÏ¢µÄ¸÷¸öÔªËØµÄ¶ÔÓ¦.

¾ßÌåµÄÉî²ãÇø±ðÓÚÁªÏµ,ÒÔ¼°Ê¹Óó¡¾°,ÎÒ»¹²»¶®,Ï£ÍûÓÐÅóÓѶÔ×Å¿é±È½Ï¶®µÄ,¿ÉÒÔ½»Á÷Ò»ÏÂ.Èç¹ûºóÃæµÈÎÒŪ¶®Á˵ϰ,ÎÒÔÙרÃÅд²©ÎĽ»Á÷.

WCF(Èý) Message pattern

   
4464 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
 
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
 
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ʹÓÃdecj¼ò»¯Webǰ¶Ë¿ª·¢
Web¿ª·¢¿ò¼ÜÐγÉÖ®ÂÃ
¸üÓÐЧÂʵÄʹÓÃVisual Studio
MVP+WCF+Èý²ã½á¹¹´î½¨¿ò¼Ü
ASP.NETÔËÐлúÖÆÇ³Îö¡¾Í¼½â¡¿
±àд¸üºÃµÄC#´úÂë
10¸öVisual Studio¿ª·¢µ÷ÊÔ¼¼ÇÉ

.NET¿ò¼ÜÓë·Ö²¼Ê½Ó¦Óüܹ¹Éè¼Æ
.NET & WPF & WCFÓ¦Óÿª·¢
UML&.Net¼Ü¹¹Éè¼Æ
COM×é¼þ¿ª·¢
.NetÓ¦Óÿª·¢
InstallShield

ÈÕÕÕ¸Û .NET Framework & WCFÓ¦Óÿª·¢
Éñ»ªÐÅÏ¢ .NETµ¥Ôª²âÊÔ
±±¾© .NetÓ¦ÓÃÈí¼þϵͳ¼Ü¹¹
̨´ïµç×Ó .NET³ÌÐòÉè¼ÆÓ뿪·¢
ÈüÃÅÌú¿Ë C#Óë.NET¼Ü¹¹Éè¼Æ
¹ã¶«ºËµç .NetÓ¦ÓÃϵͳ¼Ü¹¹