1 //---------------------------------------------------------------- 2 // Copyright (c) Microsoft Corporation. All rights reserved. 3 //---------------------------------------------------------------- 4 namespace System.ServiceModel.Discovery 5 { 6 using System.Runtime; 7 using System.ServiceModel.Description; 8 using System.ServiceModel.Dispatcher; 9 10 [Fx.Tag.XamlVisible(false)] 11 public class DiscoveryOperationContextExtension : IExtension<OperationContext> 12 { 13 TimeSpan maxResponseDelay; 14 ServiceDiscoveryMode discoveryMode; 15 DiscoveryVersion discoveryVersion; 16 DiscoveryOperationContextExtension()17 internal DiscoveryOperationContextExtension() 18 : this(TimeSpan.Zero, ServiceDiscoveryMode.Adhoc, DiscoveryVersion.DefaultDiscoveryVersion) 19 { 20 } 21 DiscoveryOperationContextExtension(TimeSpan maxResponseDelay, ServiceDiscoveryMode discoveryMode, DiscoveryVersion discoveryVersion)22 internal DiscoveryOperationContextExtension(TimeSpan maxResponseDelay, ServiceDiscoveryMode discoveryMode, DiscoveryVersion discoveryVersion) 23 { 24 TimeoutHelper.ThrowIfNegativeArgument(maxResponseDelay, "maxResponseDelay"); 25 Fx.Assert(discoveryVersion != null, "discoveryVersion can't be null"); 26 27 this.maxResponseDelay = maxResponseDelay; 28 this.discoveryMode = discoveryMode; 29 this.discoveryVersion = discoveryVersion; 30 } 31 32 public TimeSpan MaxResponseDelay 33 { 34 get 35 { 36 return this.maxResponseDelay; 37 } 38 internal set 39 { 40 TimeoutHelper.ThrowIfNegativeArgument(value, "values"); 41 this.maxResponseDelay = value; 42 } 43 } 44 45 public ServiceDiscoveryMode DiscoveryMode 46 { 47 get 48 { 49 return this.discoveryMode; 50 } 51 } 52 53 public DiscoveryVersion DiscoveryVersion 54 { 55 get 56 { 57 return this.discoveryVersion; 58 } 59 } 60 Attach(OperationContext owner)61 void IExtension<OperationContext>.Attach(OperationContext owner) 62 { 63 } 64 Detach(OperationContext owner)65 void IExtension<OperationContext>.Detach(OperationContext owner) 66 { 67 } 68 } 69 } 70