WCF 基础之契约(Contract)[转]
发布日期:2021-05-14 04:37:31 浏览次数:18 分类:博客文章

本文共 13656 字,大约阅读时间需要 45 分钟。

1. WCF ������������������Contract���

������(Contract)��� WCF ������������������������������������������������������������������������������������������������������������������������������������(���������������������������)������������������WCF ��������� 4 ���������������������������������������������(Operations)��� Service Contract��������������������������������� Data Contract������������������������ *Fault Contract������������������������������������ Message Contract���������������WCF������������������������������������WCF���������������������������

  • Service contracts : ������������������������������������������������
  • Data contracts : ������������������������������������WCF ��������������������������������������� int���string ������������������������������������ DataContractAttribute ���������������������������������������������������������
  • Fault contracts : ���������������������������������������������������������������������������������
  • Message contracts : ������������������������������������������������������������������������������������������

2. ������������(Service Contract)

���������������������������������(Interface)���������������������(Service Contract)������������������������������ Class���������������������������������������������������������������������������������������������������������������������������

  • ���������������������������������������������
  • ���������������������������������������������������������������������
  • ������������������������������������������������������������������������������

WCF ������������ ServiceContractAttribute ���������������������OperationContractAttribute ���������������������

public interface ICalculate { double Add(double a, double b); }

OperationContract ������������ Method������������������������������������������������������������������������������������������������������������������������������������������������������������������ SOA ������������SOA ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(���������������������������������)���
������ Asynchronous
���WCF���������������������������������������������������������������������������������������������������������������������
������OperationContract���AsyncPattern:=True ���������������������������
������������ Duplex
������������������������������CallbackContract:=GetType(ICalculatorDuplexCallback)������������������������������ ���������������������������������������������������������������������������������������������������(IsOneWay:=True)>������������
Oneway
������������������������������������������������������������������������������������������������������������������������������������������IsOneWay:=True ���������WCF���������������������������������������
Session
���������SOA������������������������������������������������������������������������������������������������������������������ID��������������������������������������������������������������� WCF������������3���������������
1. Pre-Call: ��������������������������������������� FaultException���������������������������������������������
2. Pre-Session: ������������������������������������������������������ FaultException���������������������������������������������
3. Singleton: ��������������������������������������������������������� FaultException���������������������������������������������
��� Stream
���WCF������������������������������������������������������TCP������������������������������������������������������������:���������������������������������������������������������������������
ServiceContract ���������

  • ConfigurationName��� ���������������������������������������������
  • Name / Namespace��������������������������������������������������������������������������������� Name ��� Namespace������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • SessionMode������������������������ Session ��������������� Allowe���NotAllowed���Required���SessionMode ��������������� Binding ��������������������������������������������������������������� ServiceBehaviorAttribute.InstanceContextMode ���������������������������������������������������
  • CallbackContract��������� duplex ���������������������������
  • ProtectionLevel���������������������������������������������������������������������������
  • OperationContract ���������
  • AsyncPattern������������������������������������
  • IsInitiating��������������������������������������� Session���
  • IsTerminating��������������������������������������������� Session���

3. ������������(Data Contract)

���������������Data Contract������������������������������������������������������
DataContractAttribute���DataMemberAttribute ��������������������������������������������������������������������������������������������������������������������������������������� System.Runtime.Serialization.dll ��������������������������������������������������������������������������� ServiceContract���OperationContract ������������������������ DataContract���DataMember ������������������������������������������������������������������ "Serializable" ������ "DataContract"���
������������������������������������������������������������������DataMember()������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

DataContract public struct Number         {             DataMember public double Num1;             DataMember public double Num2;             public Number(double num1, double num2)             {                 this.Num1 = num1;                 this.Num2 = num2;             }         }

DataContract ���������

Name / Namespace������������������������������������

DataMember ���������
Name���������������������
IsRequired������������������������������������������������
DataContractSerializer ���������������������������������������������������������������������������������������������������������������������WCF ������ DataContractSerializer ������������������������������������������������ WCF ��������������������������������������� XmlSerializer������������ ASP.NET Web Service ������������������������������XmlSerializer ��������� DataContractSerializer ������������������������������������������������ XmlAttributeAttribute ������������������������������ XML ������������������������
DataContractSerializer ������������������
��������������������������������������� XmlElement ��� DateTime ������������������������
������������ DataContractAttribute ������������������
������������ SerializableAttribute ������������������ ISerializable ������������������
������ IXmlSerializable ������������������
���������������(���������)������������������������ Array���List���IList ������
KnownTypes
���OO������������������������������������������������WCF���������������������������������������������2���������������������������������������KnownType���������������������������������������������������������������������
���������������������������������

4. ������������(Message Contract)

������������������������������������������������������������SOAP���������������������������������������������������������Header ������Body������
���������������Untyped���
������������System.ServiceModel.Channels.Message������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������
������������Unwrapped���
WCF������������������������������������������������������������������������ ���������������������������������������������������������������������������������
������
������������������XmlSerializerFormat���Style���Use������������������
������XMLReader
������������Message���GetReaderAtBodyContents ���������������������XML������

5. ������������(Fault Contract)

������������Fault Contract������������������������������������������������������������������������������������������ ���SOA���������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���WCF���������������������������������������������

  1. ������������������������������������������Service Contract

���������������������������������������ServiceContract���OperationContract

ServiceContract���������������������������������������WCF���������������������������������������������OperationContract������������������������Method���������������������WCF������������������������������

[ServiceContract]   public interface ICalculate   {   [OperationContract]   double Add(double a, double b);   }

 

  1. ���������������������������������������������Data Contract

������������������������������DataContract���DataMember.DataContract��������������������������������� WCF���������������������������������������������������DataMember������������������������������������(Property)���������������Field���������������WCF������������������������������������������������

��������������������� DataContractAttribute���DataMemberAttribute ��������������������������������������������������������������������������������������������������������������������������������������� System.Runtime.Serialization.dll ��������������������������������������������������������������������������� ServiceContract���OperationContract ������������������������ DataContract���DataMember ������������������������������������������������������������������ "[Serializable]" ������ "[DataContract]"���

[DataContract]  public class User  {      int _age = 27;      [DataMember]      public int Age      {   ������������get { return _age; }   ������������set { _age = value; }   ������}   ������string _userName = "wang.yq";   ������[DataMember]   ������public string UserName   ������{   ������������get { return _userName; }   ������������set { _userName = value; }  ������ }  }

������������������������������������������Fault Contract

FaultContract������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������FaultContract������������������������������������������������������

  1. ������������������������������������������Message Contract

������������������������������������������������������������������������������������������������������������������������������������

ServiceContract

  • ConfigurationName��� ���������������������������������������������
  • Name / Namespace��������������������������������������������������������������������������������� Name ��� Namespace������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • SessionMode������������������������ Session ��������������� Allowe���NotAllowed���Required���SessionMode ��������������� Binding ��������������������������������������������������������������� ServiceBehaviorAttribute.InstanceContextMode ���������������������������������������������������
  • CallbackContract��������� duplex (������������)���������������������������
  • ProtectionLevel���������������������������������������������������������������������������

OperationContract

  • AsyncPattern������������������������������������
  • IsInitiating��������������������������������������� Session���
  • IsTerminating��������������������������������������������� Session���

DataContract

  • Name / Namespace������������������������������������

DataMember

  • Name���������������������
  • IsRequired������������������������������������������������

 

���������������������������������

    WCF���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������WCF������������������������������

���������������������������������������������������������������

    ������������������������������������������������������������������asp.net xml web service������������������������������������������������web service������������������WebServiceAttribute���������������������������������������������������������WebMethondAttribute������������������������������������������������WCF������ServiceContract���OperationContract���������������������������������������WCF������������������Xml Web Service������������������������������ServiceContract���OperationContract������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

 

上一篇:异步调用之精简方式
下一篇:基于异步方式的语法着色器

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月27日 16时41分42秒