• WF学习


    1.添加argument

    类的argument必须先在表达式里面实例化

    argument和variable 没有区别啊???????

    http://msdn.microsoft.com/en-us/library/dd489456(v=vs.110).aspx

    2.代码添加控件

    错误:
     <Add x:TypeArguments="s:Int32,s:Int32,s:Int32" x:Key="4th" DisplayName="Add 15" Left="[TotalMount]" Result="[TotalMount]" Right="[15]"/>
    正确: 

    <Add x:TypeArguments="x:Int32, x:Int32, x:Int32" DisplayName="Add 15" Right="1">
              <Add.Left>
                <InArgument x:TypeArguments="x:Int32">
                  <mca:CSharpValue x:TypeArguments="x:Int32">OrderInfo.id</mca:CSharpValue>
                </InArgument>
              </Add.Left>
              <Add.Result>
                <OutArgument x:TypeArguments="x:Int32">
                  <mca:CSharpReference x:TypeArguments="x:Int32">OrderInfo.id</mca:CSharpReference>
                </OutArgument>
              </Add.Result>
              <sap2010:WorkflowViewState.IdRef>Add`3_1</sap2010:WorkflowViewState.IdRef>
            </Add>

    3.Invoke Method

      public  class OrderDis
        {
            public static int Compute(int id)
            {
                Console.WriteLine(id + 10);
                return id+10;
           
            }
       
        }

    Target Type 选择类

    Target Object 不选

    就可以了

    WF 加WCF 实现WCF服务。

    1.可以认为WCF是一种SOCKET通信。

    2.实现这种通信需要两个东西,服务端和客户端。

    3.服务端和客户端使用WF实现,分别是:

      WorkflowServiceHost和WorkflowInvoker

    4.WorkflowServiceHost的内容由WorkflowService指定。

    包含:ENDPOINT和Activity(即活动),ENDPOINT包括服务契约名称 binding类型 和 服务地址。

    Activity 为继承Activity的自定义类,这个玩意就是一个WF流程。在这个流程中,请添加一个活动叫做:Receive,这个东东非常重要。

    系统接收到XML消息后,就可以激活Receive的流程。请告诉Receive要解析的内容。即:

    Receive receiveRequest = new Receive {                

    ServiceContractName = "IlibReser",                

    OperationName = "ReBook",                

    CanCreateInstance=true,                

    Content=ReceiveContent.Create(new OutArgument<ReservationRequest>(request)),   

     //这个玩意啥意思,是收到以后做什么操作? 必须是一个OutArgument,这个玩意被赋值了,恭喜!           

    CorrelatesWith=requsetHandle

    //这个东西就是个空的,要看看会变成什么,也许没用                                   };

     5.WorkflowInvoker的东西由另外一个Activity指定,这里面最重要的是

      Send 和 ReceiveReply 2个活动。

    Send submitRequest = new Send            

    {                

         ServiceContractName = "IlibReser",                

         EndpointAddress = new InArgument<Uri>( env => new Uri("http://localhost:" + port.Get(env) + "/Lib")),                

         Endpoint = new Endpoint {Binding = new BasicHttpBinding()},                

         OperationName = "ReBook",                

         Content = SendContent.Create(new InArgument<ReservationRequest>(request))                 //送一个类过去?送一条消息过去

     };

    这个ENDPOINT 和那个要一样,才能通信。

      new ReceiveReply
                              {
                                 Request=submitRequest,
                                 Content=ReceiveContent.Create(new OutArgument<ReservationResponse>(env=>response.Get(env)))
                             
                              }

    这个函数能判别是哪个Request的响应?然后执行的内容是从返回对象中提取response。

    ******以下是WCF流程********

    1.ServiceContract的类,提供若干OperationContract。这就是后台服务,也就是Receive和Send里要调用的。

    实际上,这两个貌似应该分开来。???分成两个类。

    2.还有两个东西,就是MessageContract.他们分别用在Send ReceiveReply和Receive、SendReply的content中。也就是说,这才是传递的对象。

     但是不用也没什么大不了的啊。。。。。。。。这是怎么回事?没有报错!


     //就区别来说,不加的话,默认所有public的属性都要序列化,但是加的话,只有标注的属性(或字段)才能序列化,而且即使那个属性是私有的,一样可以序列化,不受任何限制。-----------------验证过了,确实是的。如果MessageContract 一定要标记MessageBodyMember.MessageHeader也不行。分消息头和消息体·MessageContract和DataContract的区别。

    native 和 code的区别在于CONTEXT和metadata上,native强很多

  • 相关阅读:
    set_ip_pool
    ubunutu_install_sublime_china
    ubuntu14_gtk 安装
    ubuntu14_pip 安装
    ActiveMQ基础教程(一):认识ActiveMQ
    EFCore:关于DDD中值对象(Owns)无法更新数值
    简单的制作ssl证书,并在nginx和IIS中使用
    .net core中Grpc使用报错:The remote certificate is invalid according to the validation procedure.
    .net core中Grpc使用报错:The response ended prematurely.
    .net core中Grpc使用报错:Request protocol 'HTTP/1.1' is not supported.
  • 原文地址:https://www.cnblogs.com/gaoxianzhi/p/3808479.html
Copyright © 2020-2023  润新知