private Assembly GetAssembly() { return(SystemTrace.GetAssembly(this.assemblyName)); }
protected override bool Initialize(Assembly assembly) { Type type = assembly.GetType("System.ServiceModel.Diagnostics.MessageLogger"); if (type == null) { SystemServiceModelMessageLogging.ReportFailure("type 'System.ServiceModel.Diagnostics.MessageLogger' not found in assembly " + assembly.FullName); return(false); } FieldInfo declaredField = type.GetTypeInfo().GetDeclaredField("messageTraceSource"); if (declaredField == null || declaredField.IsPublic || !declaredField.IsStatic) { SystemServiceModelMessageLogging.ReportFailure("field 'messageTraceSource' not found in type " + type.Name); return(false); } Assembly assembly2 = SystemTrace.GetAssembly("SMDiagnostics"); if (assembly2 == null) { SystemServiceModelMessageLogging.ReportFailure("assembly 'SMDiagnostics' not found"); return(false); } Type type2 = assembly2.GetType("System.ServiceModel.Diagnostics.PiiTraceSource"); if (type2 == null) { SystemServiceModelMessageLogging.ReportFailure("type 'System.ServiceModel.Diagnostics.PiiTraceSource' not found in assembly " + assembly2.FullName); return(false); } ConstructorInfo constructorInfo = null; foreach (ConstructorInfo constructorInfo2 in type2.GetTypeInfo().DeclaredConstructors) { if (!constructorInfo2.IsPublic) { ParameterInfo[] parameters = constructorInfo2.GetParameters(); if (parameters != null && parameters.Length == 2 && parameters[0].ParameterType == typeof(string) && parameters[1].ParameterType == typeof(string)) { constructorInfo = constructorInfo2; break; } } } if (constructorInfo == null) { SystemServiceModelMessageLogging.ReportFailure("instance constructor 'System.ServiceModel.Diagnostics.PiiTraceSource(string,string)' not found"); return(false); } object obj = constructorInfo.Invoke(new object[] { "System.ServiceModel.MessageLogging", "System.ServiceModel 4.0.0.0" }); this.source = (obj as TraceSource); if (this.source == null) { SystemServiceModelMessageLogging.ReportFailure("instance constructor 'System.ServiceModel.Diagnostics.PiiTraceSource(string,string)' did not return TraceSource object"); return(false); } this.source.Switch.Level = SourceLevels.Off; this.source.Listeners.Remove("Default"); declaredField.SetValue(null, this.source); TypeInfo typeInfo = type.GetTypeInfo(); this.propertyLogMalformedMessages = typeInfo.GetDeclaredProperty("LogMalformedMessages"); this.propertyLogMessagesAtServiceLevel = typeInfo.GetDeclaredProperty("LogMessagesAtServiceLevel"); this.propertyLogMessagesAtTransportLevel = typeInfo.GetDeclaredProperty("LogMessagesAtTransportLevel"); this.propertyLogMessageBody = typeInfo.GetDeclaredProperty("LogMessageBody"); SystemServiceModelMessageLogging.SetMinimum(type, "MaxMessageSize", 262144); SystemServiceModelMessageLogging.SetMinimum(type, "MaxNumberOfMessagesToLog", 10000); return(true); }