Author: atsushi
Date: 2008-02-15 13:17:23 -0500 (Fri, 15 Feb 2008)
New Revision: 95779

Modified:
   
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChangeLog
   
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
Log:
2008-02-15  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * ChannelDispatcher.cs : populate DispatchOperations before applying
          IEndpointBehaviors so that those behaviors can modify dispatch
          operations.



Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChangeLog  
    2008-02-15 18:16:01 UTC (rev 95778)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChangeLog  
    2008-02-15 18:17:23 UTC (rev 95779)
@@ -1,5 +1,11 @@
 2008-02-15  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * ChannelDispatcher.cs : populate DispatchOperations before applying
+         IEndpointBehaviors so that those behaviors can modify dispatch
+         operations.
+
+2008-02-15  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * DispatchOperation.cs : Action may be null. For such cases, use 
          MessageDirection to determine the message description.
 

Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
   2008-02-15 18:16:01 UTC (rev 95778)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
   2008-02-15 18:17:23 UTC (rev 95779)
@@ -190,19 +190,20 @@
                        endpoint_dispatcher.ChannelDispatcher = this;
                        host.ChannelDispatchers.Add (this);
 
+                       DispatchRuntime db = 
endpoint_dispatcher.DispatchRuntime;
+
+                       foreach (OperationDescription od in 
se.Contract.Operations)
+                               if (!db.Operations.Contains (od.Name))
+                                       PopulateDispatchOperation (db, od);
+
+                       // apply behaviors
                        foreach (IEndpointBehavior b in se.Behaviors)
                                b.ApplyDispatchBehavior (se, 
endpoint_dispatcher);
-
-                       // apply behaviors
-                       DispatchRuntime db = 
endpoint_dispatcher.DispatchRuntime;
                        foreach (IContractBehavior b in se.Contract.Behaviors)
                                b.ApplyDispatchBehavior (se.Contract, se, db);
-                       foreach (OperationDescription od in 
se.Contract.Operations) {
-                               if (!db.Operations.Contains (od.Name))
-                                       PopulateDispatchOperation (db, od);
+                       foreach (OperationDescription od in 
se.Contract.Operations)
                                foreach (IOperationBehavior ob in od.Behaviors)
                                        ob.ApplyDispatchBehavior (od, 
db.Operations [od.Name]);
-                       }
                }
 
                void PopulateDispatchOperation (DispatchRuntime db, 
OperationDescription od)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to