在Message.CreateMessage中,"action"参数的含义是什么?

max*_*oin 12 .net wcf

这是交易:

public static Message CreateMessage(
    MessageVersion version,
    MessageFault fault,
    string action)
Run Code Online (Sandbox Code Playgroud)

操作:有关如何处理消息的说明.

你们在那里放什么?" 小心处理!!! "或" 脆弱 "?它到底有什么不同吗?

And*_*erd 8

"Action"是邮件头中的字符串之一.

例如,这个电话

        var m = Message.CreateMessage(MessageVersion.Default, "http://tempuri.org/MyMethod");
Run Code Online (Sandbox Code Playgroud)

生成此消息

<s:Envelope
xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
     <a:Action s:mustUnderstand="1">http://tempuri.org/MyMethod</a:Action>
 </s:Header>   <s:Body />
 </s:Envelope>
Run Code Online (Sandbox Code Playgroud)

每条消息都有一个"动作"标题,每个WCF操作都有一个"动作"属性.在确定将每条消息分派到哪个操作时,WCF系统将比较这些值.

通常情况下,您不是手动生成消息,因此您不必担心这一点 - 它们都按默认值的预期处理.

定义服务合同时,您可以将操作字符串与操作明确关联:

[ServiceContract]
interface MyService
{
   [OperationContract(Action="http://tempuri.org/MyMethod")]
   void ThisIsntReallyCalledMyMethod(string parameter1);
}
Run Code Online (Sandbox Code Playgroud)