public override T GetProperty <T>(BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(T) == typeof(ChannelProtectionRequirements) && this.ProtectionLevel != ProtectionLevel.None) { ChannelProtectionRequirements innerRequirements = context.GetInnerProperty <ChannelProtectionRequirements>(); if (innerRequirements == null) { return((T)(object)ContextMessageHeader.GetChannelProtectionRequirements(this.ProtectionLevel)); } else { ChannelProtectionRequirements requirements = new ChannelProtectionRequirements(innerRequirements); requirements.Add(ContextMessageHeader.GetChannelProtectionRequirements(this.ProtectionLevel)); return((T)(object)requirements); } } else if (typeof(T) == typeof(IContextSessionProvider)) { return((T)(object)this); } else if (typeof(T) == typeof(IContextBindingElement)) { return((T)(object)this); } else if (typeof(T) == typeof(ICorrelationDataSource)) { ICorrelationDataSource correlationData = instanceCorrelationData; if (correlationData == null) { ICorrelationDataSource innerCorrelationData = context.GetInnerProperty <ICorrelationDataSource>(); correlationData = CorrelationDataSourceHelper.Combine(innerCorrelationData, ContextExchangeCorrelationDataDescription.DataSource); instanceCorrelationData = correlationData; } return((T)(object)correlationData); } return(context.GetInnerProperty <T>()); }
public override T GetProperty <T>(BindingContext context) where T : class { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if ((typeof(T) == typeof(ChannelProtectionRequirements)) && (this.ProtectionLevel != System.Net.Security.ProtectionLevel.None)) { ChannelProtectionRequirements innerProperty = context.GetInnerProperty <ChannelProtectionRequirements>(); if (innerProperty == null) { return((T)ContextMessageHeader.GetChannelProtectionRequirements(this.ProtectionLevel)); } ChannelProtectionRequirements requirements2 = new ChannelProtectionRequirements(innerProperty); requirements2.Add(ContextMessageHeader.GetChannelProtectionRequirements(this.ProtectionLevel)); return((T)requirements2); } if (typeof(T) == typeof(IContextSessionProvider)) { return((T)this); } if (typeof(T) == typeof(IContextBindingElement)) { return((T)this); } if (!(typeof(T) == typeof(ICorrelationDataSource))) { return(context.GetInnerProperty <T>()); } ICorrelationDataSource instanceCorrelationData = this.instanceCorrelationData; if (instanceCorrelationData == null) { instanceCorrelationData = CorrelationDataSourceHelper.Combine(context.GetInnerProperty <ICorrelationDataSource>(), ContextExchangeCorrelationDataDescription.DataSource); this.instanceCorrelationData = instanceCorrelationData; } return((T)instanceCorrelationData); }