ComPlusContractBehavior.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.ServiceModel.ComIntegration
  5. {
  6. using System;
  7. using System.ServiceModel.Channels;
  8. using System.ServiceModel;
  9. using System.ServiceModel.Dispatcher;
  10. using System.ServiceModel.Description;
  11. using System.Collections.Generic;
  12. class ComPlusContractBehavior : IContractBehavior
  13. {
  14. ServiceInfo info;
  15. public ComPlusContractBehavior(ServiceInfo info)
  16. {
  17. this.info = info;
  18. }
  19. public void Validate(ContractDescription description, ServiceEndpoint endpoint)
  20. {
  21. }
  22. public void AddBindingParameters(ContractDescription description,
  23. ServiceEndpoint endpoint,
  24. BindingParameterCollection parameters)
  25. {
  26. }
  27. public void ApplyDispatchBehavior(ContractDescription description,
  28. ServiceEndpoint endpoint,
  29. DispatchRuntime dispatch)
  30. {
  31. dispatch.InstanceProvider = new ComPlusInstanceProvider(info);
  32. dispatch.InstanceContextInitializers.Add(new ComPlusInstanceContextInitializer(info));
  33. foreach (DispatchOperation operation in dispatch.Operations)
  34. {
  35. operation.CallContextInitializers.Add(
  36. new ComPlusThreadInitializer(
  37. description,
  38. operation,
  39. info));
  40. }
  41. }
  42. public void ApplyClientBehavior(ContractDescription description,
  43. ServiceEndpoint endpoint,
  44. ClientRuntime proxy)
  45. {
  46. return;
  47. }
  48. }
  49. }