static void FillBehaviorInfo(IContractBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { Fx.Assert(null != existingInstance, ""); Fx.Assert(null != behavior, ""); instance = null; if (behavior is DeliveryRequirementsAttribute) { instance = existingInstance.NewInstance("DeliveryRequirementsAttribute"); DeliveryRequirementsAttribute specificBehavior = (DeliveryRequirementsAttribute)behavior; instance.SetProperty(AdministrationStrings.QueuedDeliveryRequirements, specificBehavior.QueuedDeliveryRequirements.ToString()); instance.SetProperty(AdministrationStrings.RequireOrderedDelivery, specificBehavior.RequireOrderedDelivery); if (null != specificBehavior.TargetContract) { instance.SetProperty(AdministrationStrings.TargetContract, specificBehavior.TargetContract.ToString()); } } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider instanceProvider = (IWmiInstanceProvider)behavior; instance = existingInstance.NewInstance(instanceProvider.GetInstanceType()); instanceProvider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (null != instance) { instance.SetProperty(AdministrationStrings.Type, behavior.GetType().FullName); } }
private static IWmiInstance[] CreateListenersInfo(TraceSource traceSource, IWmiInstance instance) { IWmiInstance[] instanceArray = new IWmiInstance[traceSource.Listeners.Count]; for (int i = 0; i < traceSource.Listeners.Count; i++) { TraceListener target = traceSource.Listeners[i]; IWmiInstance instance2 = instance.NewInstance("TraceListener"); instance2.SetProperty("Name", target.Name); List <IWmiInstance> list = new List <IWmiInstance>(1); Type type = target.GetType(); string str = (string)type.InvokeMember("initializeData", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, target, null, CultureInfo.InvariantCulture); string[] strArray = (string[])type.InvokeMember("GetSupportedAttributes", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, target, null, CultureInfo.InvariantCulture); IWmiInstance item = instance.NewInstance("TraceListenerArgument"); item.SetProperty("Name", "initializeData"); item.SetProperty("Value", str); list.Add(item); if (strArray != null) { foreach (string str2 in strArray) { item = instance.NewInstance("TraceListenerArgument"); item.SetProperty("Name", str2); item.SetProperty("Value", target.Attributes[str2]); list.Add(item); } } instance2.SetProperty("TraceListenerArguments", list.ToArray()); instanceArray[i] = instance2; } return(instanceArray); }
private static void FillBehaviorInfo(IContractBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is DeliveryRequirementsAttribute) { instance = existingInstance.NewInstance("DeliveryRequirementsAttribute"); DeliveryRequirementsAttribute attribute = (DeliveryRequirementsAttribute)behavior; instance.SetProperty("QueuedDeliveryRequirements", attribute.QueuedDeliveryRequirements.ToString()); instance.SetProperty("RequireOrderedDelivery", attribute.RequireOrderedDelivery); if (null != attribute.TargetContract) { instance.SetProperty("TargetContract", attribute.TargetContract.ToString()); } } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider)behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
private static void FillBehaviorInfo(IContractBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is DeliveryRequirementsAttribute) { instance = existingInstance.NewInstance("DeliveryRequirementsAttribute"); DeliveryRequirementsAttribute attribute = (DeliveryRequirementsAttribute) behavior; instance.SetProperty("QueuedDeliveryRequirements", attribute.QueuedDeliveryRequirements.ToString()); instance.SetProperty("RequireOrderedDelivery", attribute.RequireOrderedDelivery); if (null != attribute.TargetContract) { instance.SetProperty("TargetContract", attribute.TargetContract.ToString()); } } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
private static void FillBehaviorInfo(IOperationBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is DataContractSerializerOperationBehavior) { instance = existingInstance.NewInstance("DataContractSerializerOperationBehavior"); DataContractSerializerOperationBehavior behavior2 = (DataContractSerializerOperationBehavior) behavior; instance.SetProperty("IgnoreExtensionDataObject", behavior2.IgnoreExtensionDataObject); instance.SetProperty("MaxItemsInObjectGraph", behavior2.MaxItemsInObjectGraph); if (behavior2.DataContractFormatAttribute != null) { instance.SetProperty("Style", behavior2.DataContractFormatAttribute.Style.ToString()); } } else if (behavior is OperationBehaviorAttribute) { instance = existingInstance.NewInstance("OperationBehaviorAttribute"); OperationBehaviorAttribute attribute = (OperationBehaviorAttribute) behavior; instance.SetProperty("AutoDisposeParameters", attribute.AutoDisposeParameters); instance.SetProperty("Impersonation", attribute.Impersonation.ToString()); instance.SetProperty("ReleaseInstanceMode", attribute.ReleaseInstanceMode.ToString()); instance.SetProperty("TransactionAutoComplete", attribute.TransactionAutoComplete); instance.SetProperty("TransactionScopeRequired", attribute.TransactionScopeRequired); } else if (behavior is TransactionFlowAttribute) { instance = existingInstance.NewInstance("TransactionFlowAttribute"); TransactionFlowAttribute attribute2 = (TransactionFlowAttribute) behavior; instance.SetProperty("TransactionFlowOption", attribute2.Transactions.ToString()); } else if (behavior is XmlSerializerOperationBehavior) { instance = existingInstance.NewInstance("XmlSerializerOperationBehavior"); XmlSerializerOperationBehavior behavior3 = (XmlSerializerOperationBehavior) behavior; if (behavior3.XmlSerializerFormatAttribute != null) { instance.SetProperty("Style", behavior3.XmlSerializerFormatAttribute.Style.ToString()); instance.SetProperty("Use", behavior3.XmlSerializerFormatAttribute.Use.ToString()); instance.SetProperty("SupportFaults", behavior3.XmlSerializerFormatAttribute.SupportFaults.ToString()); } } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
internal static void FillEndpointInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { instance.SetProperty("CounterInstanceName", PerformanceCounters.PerformanceCountersEnabled ? EndpointPerformanceCountersBase.CreateFriendlyInstanceName(endpoint.ServiceName, endpoint.Contract.Name, endpoint.Address.AbsoluteUri.ToUpperInvariant()) : string.Empty); instance.SetProperty("Name", endpoint.Name); instance.SetProperty("ContractName", endpoint.Contract.Name); FillAddressInfo(endpoint, instance); FillContractInfo(endpoint, instance); FillBindingInfo(endpoint, instance); FillBehaviorsInfo(endpoint, instance); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { IWmiInstance inst = instances.NewInstance(null); inst.SetProperty("AppDomainInfo", AppDomainInstanceProvider.GetReference()); inst.SetProperty("Service", ServiceInstanceProvider.GetReference(info)); instances.AddInstance(inst); } }
private static void FillReaderQuotas(IWmiInstance instance, XmlDictionaryReaderQuotas readerQuotas) { IWmiInstance instance2 = instance.NewInstance("XmlDictionaryReaderQuotas"); instance2.SetProperty("MaxArrayLength", readerQuotas.MaxArrayLength); instance2.SetProperty("MaxBytesPerRead", readerQuotas.MaxBytesPerRead); instance2.SetProperty("MaxDepth", readerQuotas.MaxDepth); instance2.SetProperty("MaxNameTableCharCount", readerQuotas.MaxNameTableCharCount); instance2.SetProperty("MaxStringContentLength", readerQuotas.MaxStringContentLength); instance.SetProperty("ReaderQuotas", instance2); }
internal static void FillEndpointInfo(EndpointInfo endpoint, IWmiInstance instance) { Fx.Assert(null != endpoint, ""); Fx.Assert(null != instance, ""); instance.SetProperty(AdministrationStrings.CounterInstanceName, PerformanceCounters.PerformanceCountersEnabled ? EndpointPerformanceCounters.GetFriendlyInstanceName(endpoint.ServiceName, endpoint.Contract.Name, endpoint.Address.AbsoluteUri.ToUpperInvariant()) : String.Empty); instance.SetProperty(AdministrationStrings.Name, endpoint.Name); instance.SetProperty(AdministrationStrings.ContractName, endpoint.Contract.Name); FillAddressInfo(endpoint, instance); FillContractInfo(endpoint, instance); FillBindingInfo(endpoint, instance); FillBehaviorsInfo(endpoint, instance); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { int processId = AppDomainInfo.Current.ProcessId; foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { IWmiInstance instance = instances.NewInstance(null); instance.SetProperty("DistinguishedName", info.DistinguishedName); instance.SetProperty("ProcessId", processId); this.FillServiceInfo(info, instance); instances.AddInstance(instance); } }
static void FillReaderQuotas(IWmiInstance instance, XmlDictionaryReaderQuotas readerQuotas) { Fx.Assert(null != instance, ""); Fx.Assert(null != readerQuotas, ""); IWmiInstance readerQuotasInstance = instance.NewInstance(AdministrationStrings.XmlDictionaryReaderQuotas); readerQuotasInstance.SetProperty(AdministrationStrings.MaxArrayLength, readerQuotas.MaxArrayLength); readerQuotasInstance.SetProperty(AdministrationStrings.MaxBytesPerRead, readerQuotas.MaxBytesPerRead); readerQuotasInstance.SetProperty(AdministrationStrings.MaxDepth, readerQuotas.MaxDepth); readerQuotasInstance.SetProperty(AdministrationStrings.MaxNameTableCharCount, readerQuotas.MaxNameTableCharCount); readerQuotasInstance.SetProperty(AdministrationStrings.MaxStringContentLength, readerQuotas.MaxStringContentLength); instance.SetProperty(AdministrationStrings.ReaderQuotas, readerQuotasInstance); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { Fx.Assert(null != instances, ""); foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { IWmiInstance instance = instances.NewInstance(null); instance.SetProperty(AdministrationStrings.AppDomainInfo, AppDomainInstanceProvider.GetReference()); instance.SetProperty(AdministrationStrings.Service, ServiceInstanceProvider.GetReference(info)); instances.AddInstance(instance); } }
private static void FillListenersInfo(IWmiInstance instance) { TraceSource traceSource = (DiagnosticUtility.DiagnosticTrace == null) ? null : DiagnosticUtility.DiagnosticTrace.TraceSource; if (traceSource != null) { instance.SetProperty("ServiceModelTraceListeners", CreateListenersInfo(traceSource, instance)); } traceSource = MessageLogger.MessageTraceSource; if (traceSource != null) { instance.SetProperty("MessageLoggingTraceListeners", CreateListenersInfo(traceSource, instance)); } }
private static void FillAddressInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { string[] info = new string[endpoint.Headers.Count]; int num = 0; foreach (AddressHeader header in endpoint.Headers) { PlainXmlWriter writer = new PlainXmlWriter(); header.WriteAddressHeader(writer); info[num++] = writer.ToString(); } ProviderBase.FillCollectionInfo(info, instance, "AddressHeaders"); instance.SetProperty("Address", (endpoint.Address == null) ? string.Empty : endpoint.Address.ToString()); instance.SetProperty("ListenUri", (endpoint.ListenUri == null) ? string.Empty : endpoint.ListenUri.ToString()); instance.SetProperty("AddressIdentity", (endpoint.Identity == null) ? string.Empty : endpoint.Identity.ToString()); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { string reference = ServiceInstanceProvider.GetReference(info); foreach (EndpointInfo info2 in info.Endpoints) { IWmiInstance inst = instances.NewInstance(null); string str2 = EndpointInstanceProvider.EndpointReference(info2.ListenUri, info2.Contract.Name); inst.SetProperty("Endpoint", str2); inst.SetProperty("Service", reference); instances.AddInstance(inst); } } }
void IWmiProvider.EnumInstances(IWmiInstances instances) { Fx.Assert(null != instances, ""); int processId = AppDomainInfo.Current.ProcessId; foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { IWmiInstance instance = instances.NewInstance(null); instance.SetProperty(AdministrationStrings.DistinguishedName, info.DistinguishedName); instance.SetProperty(AdministrationStrings.ProcessId, processId); FillServiceInfo(info, instance); instances.AddInstance(instance); } }
static void FillListenersInfo(IWmiInstance instance) { Fx.Assert(null != instance, ""); TraceSource traceSource = DiagnosticUtility.DiagnosticTrace == null ? null : DiagnosticUtility.DiagnosticTrace.TraceSource; if (null != traceSource) { instance.SetProperty(AdministrationStrings.ServiceModelTraceListeners, CreateListenersInfo(traceSource, instance)); } traceSource = MessageLogger.MessageTraceSource; if (null != traceSource) { instance.SetProperty(AdministrationStrings.MessageLoggingTraceListeners, CreateListenersInfo(traceSource, instance)); } }
static void FillContractInfo(EndpointInfo endpoint, IWmiInstance instance) { Fx.Assert(null != endpoint, ""); Fx.Assert(null != instance, ""); instance.SetProperty(AdministrationStrings.Contract, ContractInstanceProvider.ContractReference(endpoint.Contract.Name)); }
void FillChannelsInfo(ServiceInfo info, IWmiInstance instance) { Fx.Assert(null != instance, ""); Fx.Assert(null != info, ""); int channelsCount = 0; List <IWmiInstance> instances = new List <IWmiInstance>(); IEnumerable <InstanceContext> contexts = info.Service.GetInstanceContexts(); foreach (InstanceContext instanceContext in contexts) { lock (instanceContext.ThisLock) { channelsCount += instanceContext.WmiChannels.Count; foreach (IChannel channel in instanceContext.WmiChannels) { IWmiInstance channelInstance = instance.NewInstance(AdministrationStrings.Channel); FillChannelInfo(channel, channelInstance); instances.Add(channelInstance); } } } instance.SetProperty(AdministrationStrings.Channels, instances.ToArray()); }
private static void FillAddressInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { string[] info = new string[endpoint.Headers.Count]; int num = 0; foreach (AddressHeader header in endpoint.Headers) { PlainXmlWriter writer = new PlainXmlWriter(); header.WriteAddressHeader(writer); info[num++] = writer.ToString(); } ProviderBase.FillCollectionInfo(info, instance, "AddressHeaders"); instance.SetProperty("Address", (endpoint.Address == null) ? string.Empty : endpoint.Address.ToString()); instance.SetProperty("ListenUri", (endpoint.ListenUri == null) ? string.Empty : endpoint.ListenUri.ToString()); instance.SetProperty("AddressIdentity", (endpoint.Identity == null) ? string.Empty : endpoint.Identity.ToString()); }
internal static void FillAppDomainInfo(IWmiInstance instance) { Fx.Assert(null != instance, ""); AppDomainInfo domainInfo = AppDomainInfo.Current; instance.SetProperty(AdministrationStrings.Name, domainInfo.Name); instance.SetProperty(AdministrationStrings.AppDomainId, domainInfo.Id); instance.SetProperty(AdministrationStrings.PerformanceCounters, PerformanceCounters.Scope.ToString()); instance.SetProperty(AdministrationStrings.IsDefault, domainInfo.IsDefaultAppDomain); instance.SetProperty(AdministrationStrings.ProcessId, domainInfo.ProcessId); instance.SetProperty(AdministrationStrings.TraceLevel, DiagnosticUtility.Level.ToString()); instance.SetProperty(AdministrationStrings.LogMalformedMessages, MessageLogger.LogMalformedMessages); instance.SetProperty(AdministrationStrings.LogMessagesAtServiceLevel, MessageLogger.LogMessagesAtServiceLevel); instance.SetProperty(AdministrationStrings.LogMessagesAtTransportLevel, MessageLogger.LogMessagesAtTransportLevel); instance.SetProperty(AdministrationStrings.ServiceConfigPath, AspNetEnvironment.Current.ConfigurationPath); FillListenersInfo(instance); }
internal static void FillAppDomainInfo(IWmiInstance instance) { AppDomainInfo current = AppDomainInfo.Current; instance.SetProperty("Name", current.Name); instance.SetProperty("AppDomainId", current.Id); instance.SetProperty("PerformanceCounters", PerformanceCounters.Scope.ToString()); instance.SetProperty("IsDefault", current.IsDefaultAppDomain); instance.SetProperty("ProcessId", current.ProcessId); instance.SetProperty("TraceLevel", DiagnosticUtility.Level.ToString()); instance.SetProperty("LogMalformedMessages", MessageLogger.LogMalformedMessages); instance.SetProperty("LogMessagesAtServiceLevel", MessageLogger.LogMessagesAtServiceLevel); instance.SetProperty("LogMessagesAtTransportLevel", MessageLogger.LogMessagesAtTransportLevel); instance.SetProperty("ServiceConfigPath", AspNetEnvironment.Current.ConfigurationPath); FillListenersInfo(instance); }
private void FillChannelInfo(IChannel channel, IWmiInstance instance) { instance.SetProperty("Type", channel.GetType().ToString()); ServiceChannel serviceChannel = ServiceChannelFactory.GetServiceChannel(channel); if (serviceChannel != null) { string str = (serviceChannel.RemoteAddress == null) ? string.Empty : serviceChannel.RemoteAddress.ToString(); instance.SetProperty("RemoteAddress", str); string contractName = (serviceChannel.ClientRuntime != null) ? serviceChannel.ClientRuntime.ContractName : string.Empty; string str3 = EndpointInstanceProvider.EndpointReference(str, contractName, false); instance.SetProperty("RemoteEndpoint", str3); instance.SetProperty("LocalAddress", (serviceChannel.LocalAddress == null) ? string.Empty : serviceChannel.LocalAddress.ToString()); instance.SetProperty("SessionId", ((IContextChannel)serviceChannel).SessionId); } }
internal static void FillAppDomainInfo(IWmiInstance instance) { Fx.Assert(null != instance, ""); AppDomainInfo domainInfo = AppDomainInfo.Current; instance.SetProperty(AdministrationStrings.Name, domainInfo.Name); instance.SetProperty(AdministrationStrings.AppDomainId, domainInfo.Id); instance.SetProperty(AdministrationStrings.PerformanceCounters, PerformanceCounters.Scope.ToString()); instance.SetProperty(AdministrationStrings.IsDefault, domainInfo.IsDefaultAppDomain); instance.SetProperty(AdministrationStrings.ProcessId, domainInfo.ProcessId); instance.SetProperty(AdministrationStrings.TraceLevel, DiagnosticUtility.Level.ToString()); instance.SetProperty(AdministrationStrings.LogMalformedMessages, MessageLogger.LogMalformedMessages); instance.SetProperty(AdministrationStrings.LogMessagesAtServiceLevel, MessageLogger.LogMessagesAtServiceLevel); instance.SetProperty(AdministrationStrings.LogMessagesAtTransportLevel, MessageLogger.LogMessagesAtTransportLevel); instance.SetProperty(AdministrationStrings.ServiceConfigPath, AspNetEnvironment.Current.ConfigurationPath); FillListenersInfo(instance); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { int processId = AppDomainInfo.Current.ProcessId; int id = AppDomainInfo.Current.Id; foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { foreach (System.ServiceModel.Administration.EndpointInfo info2 in info.Endpoints) { IWmiInstance instance = instances.NewInstance(null); instance.SetProperty("ProcessId", processId); instance.SetProperty("AppDomainId", id); FillEndpointInfo(info2, instance); instances.AddInstance(instance); } } }
void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { wmiInstance.SetProperty(AdministrationStrings.MessageVersion, this.MessageVersion.ToString()); wmiInstance.SetProperty(AdministrationStrings.Encoding, this.writeEncoding.WebName); wmiInstance.SetProperty(AdministrationStrings.MaxReadPoolSize, this.maxReadPoolSize); wmiInstance.SetProperty(AdministrationStrings.MaxWritePoolSize, this.maxWritePoolSize); if (this.ReaderQuotas != null) { IWmiInstance readerQuotasInstance = wmiInstance.NewInstance(AdministrationStrings.XmlDictionaryReaderQuotas); readerQuotasInstance.SetProperty(AdministrationStrings.MaxArrayLength, this.readerQuotas.MaxArrayLength); readerQuotasInstance.SetProperty(AdministrationStrings.MaxBytesPerRead, this.readerQuotas.MaxBytesPerRead); readerQuotasInstance.SetProperty(AdministrationStrings.MaxDepth, this.readerQuotas.MaxDepth); readerQuotasInstance.SetProperty(AdministrationStrings.MaxNameTableCharCount, this.readerQuotas.MaxNameTableCharCount); readerQuotasInstance.SetProperty(AdministrationStrings.MaxStringContentLength, this.readerQuotas.MaxStringContentLength); wmiInstance.SetProperty(AdministrationStrings.ReaderQuotas, readerQuotasInstance); } }
private void FillMetadataExporterInfo(IWmiInstance instance, MetadataExporter exporter) { DiagnosticUtility.EventLog.LogEvent(TraceEventType.Information, EventLogCategory.Wmi, (EventLogEventId)(-1073610744), true, new string[] { "metadata exporter called" }); IWmiInstance instance2 = instance.NewInstance("MetadataExporter"); instance2.SetProperty("PolicyVersion", exporter.PolicyVersion.ToString()); instance.SetProperty("MetadataExportInfo", instance2); }
static void FillOperation(IWmiInstance operation, OperationDescription operationDescription) { operation.SetProperty(AdministrationStrings.Name, operationDescription.Name); operation.SetProperty(AdministrationStrings.Action, FixWildcardAction(operationDescription.Messages[0].Action)); if (operationDescription.Messages.Count > 1) { operation.SetProperty(AdministrationStrings.ReplyAction, FixWildcardAction(operationDescription.Messages[1].Action)); } operation.SetProperty(AdministrationStrings.IsOneWay, operationDescription.IsOneWay); operation.SetProperty(AdministrationStrings.IsInitiating, operationDescription.IsInitiating); operation.SetProperty(AdministrationStrings.IsTerminating, operationDescription.IsTerminating); operation.SetProperty(AdministrationStrings.AsyncPattern, null != operationDescription.BeginMethod); if (null != operationDescription.SyncMethod) { if (null != operationDescription.SyncMethod.ReturnType) { operation.SetProperty(AdministrationStrings.ReturnType, operationDescription.SyncMethod.ReturnType.Name); } operation.SetProperty(AdministrationStrings.MethodSignature, operationDescription.SyncMethod.ToString()); ParameterInfo[] parameterInfo = operationDescription.SyncMethod.GetParameters(); string[] parameterTypes = new string[parameterInfo.Length]; for (int i = 0; i < parameterInfo.Length; i++) { parameterTypes[i] = parameterInfo[i].ParameterType.ToString(); } operation.SetProperty(AdministrationStrings.ParameterTypes, parameterTypes); } operation.SetProperty(AdministrationStrings.IsCallback, operationDescription.Messages[0].Direction == MessageDirection.Output); FillBehaviorsInfo(operation, operationDescription.Behaviors); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { string serviceRef = ServiceInstanceProvider.GetReference(info); foreach (EndpointInfo endpointInfo in info.Endpoints) { IWmiInstance instance = instances.NewInstance(null); string endpointRef = EndpointInstanceProvider.EndpointReference(endpointInfo.ListenUri, endpointInfo.Contract.Name); instance.SetProperty(AdministrationStrings.Endpoint, endpointRef); instance.SetProperty(AdministrationStrings.Service, serviceRef); instances.AddInstance(instance); } } }
static void FillAddressInfo(EndpointInfo endpoint, IWmiInstance instance) { Fx.Assert(null != endpoint, ""); Fx.Assert(null != instance, ""); string[] headers = new string[endpoint.Headers.Count]; int i = 0; foreach (AddressHeader header in endpoint.Headers) { PlainXmlWriter xmlWriter = new PlainXmlWriter(); header.WriteAddressHeader(xmlWriter); headers[i++] = xmlWriter.ToString(); } ProviderBase.FillCollectionInfo(headers, instance, AdministrationStrings.AddressHeaders); instance.SetProperty(AdministrationStrings.Address, endpoint.Address == null ? String.Empty : endpoint.Address.ToString()); instance.SetProperty(AdministrationStrings.ListenUri, endpoint.ListenUri == null ? String.Empty : endpoint.ListenUri.ToString()); instance.SetProperty(AdministrationStrings.Identity, endpoint.Identity == null ? String.Empty : endpoint.Identity.ToString()); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { int processId = AppDomainInfo.Current.ProcessId; int id = AppDomainInfo.Current.Id; lock (knownContracts) { UpdateContracts(); foreach (ContractDescription description in knownContracts.Values) { IWmiInstance contract = instances.NewInstance(null); contract.SetProperty("ProcessId", processId); contract.SetProperty("AppDomainId", id); FillContract(contract, description); instances.AddInstance(contract); } } }
public static void FillCollectionInfo(ICollection info, IWmiInstance instance, string propertyName) { string[] strArray = new string[info.Count]; int num = 0; foreach (object obj2 in info) { strArray[num++] = obj2.ToString(); } instance.SetProperty(propertyName, strArray); }
void FillChannelInfo(IChannel channel, IWmiInstance instance) { Fx.Assert(null != instance, ""); Fx.Assert(null != channel, ""); instance.SetProperty(AdministrationStrings.Type, channel.GetType().ToString()); ServiceChannel serviceChannel = ServiceChannelFactory.GetServiceChannel(channel); if (null != serviceChannel) { string uri = serviceChannel.RemoteAddress == null ? String.Empty : serviceChannel.RemoteAddress.ToString(); instance.SetProperty(AdministrationStrings.RemoteAddress, uri); string contractName = null != serviceChannel.ClientRuntime ? serviceChannel.ClientRuntime.ContractName : String.Empty; string remoteEndpoint = EndpointInstanceProvider.EndpointReference(uri, contractName, false); instance.SetProperty(AdministrationStrings.RemoteEndpoint, remoteEndpoint); instance.SetProperty(AdministrationStrings.LocalAddress, serviceChannel.LocalAddress == null ? String.Empty : serviceChannel.LocalAddress.ToString()); instance.SetProperty(AdministrationStrings.SessionId, ((IContextChannel)serviceChannel).SessionId); } }
void FillMetadataExporterInfo(IWmiInstance instance, MetadataExporter exporter) { DiagnosticUtility.EventLog.LogEvent(TraceEventType.Information, (ushort)System.Runtime.Diagnostics.EventLogCategory.Wmi, (uint)System.Runtime.Diagnostics.EventLogEventId.MessageLoggingOn, true, "metadata exporter called"); Fx.Assert(null != instance, ""); Fx.Assert(null != exporter, ""); IWmiInstance metadataExporterInstance = instance.NewInstance(AdministrationStrings.MetadataExporter); metadataExporterInstance.SetProperty(AdministrationStrings.PolicyVersion, exporter.PolicyVersion.ToString()); instance.SetProperty(AdministrationStrings.MetadataExportInfo, metadataExporterInstance); }
public static void FillCollectionInfo(ICollection info, IWmiInstance instance, string propertyName) { string[] strArray = new string[info.Count]; int num = 0; foreach (object obj2 in info) { strArray[num++] = obj2.ToString(); } instance.SetProperty(propertyName, strArray); }
private static void FillExtendedProtectionPolicy(IWmiInstance instance, ExtendedProtectionPolicy policy) { IWmiInstance instance2 = instance.NewInstance("ExtendedProtectionPolicy"); instance2.SetProperty("PolicyEnforcement", policy.PolicyEnforcement.ToString()); instance2.SetProperty("ProtectionScenario", policy.ProtectionScenario.ToString()); if (policy.CustomServiceNames != null) { List <string> list = new List <string>(policy.CustomServiceNames.Count); foreach (string str in policy.CustomServiceNames) { list.Add(str); } instance2.SetProperty("CustomServiceNames", list.ToArray()); } if (policy.CustomChannelBinding != null) { instance2.SetProperty("CustomChannelBinding", policy.CustomChannelBinding.GetType().ToString()); } instance.SetProperty("ExtendedProtectionPolicy", instance2); }
static void FillContract(IWmiInstance contract, ContractDescription contractDescription) { Fx.Assert(null != contractDescription, "contractDescription cannot be null"); contract.SetProperty(AdministrationStrings.Type, contractDescription.ContractType.Name); if (null != contractDescription.CallbackContractType) { contract.SetProperty(AdministrationStrings.CallbackContract, ContractReference(contractDescription.CallbackContractType.Name)); } contract.SetProperty(AdministrationStrings.Name, contractDescription.Name); contract.SetProperty(AdministrationStrings.Namespace, contractDescription.Namespace); contract.SetProperty(AdministrationStrings.SessionMode, contractDescription.SessionMode.ToString()); IWmiInstance[] operations = new IWmiInstance[contractDescription.Operations.Count]; for (int j = 0; j < operations.Length; ++j) { OperationDescription operationDescription = contractDescription.Operations[j]; Fx.Assert(operationDescription.Messages.Count > 0, ""); IWmiInstance operation = contract.NewInstance(AdministrationStrings.Operation); FillOperation(operation, operationDescription); operations[j] = operation; } contract.SetProperty(AdministrationStrings.Operations, operations); FillBehaviorsInfo(contract, contractDescription.Behaviors); }
public static void FillCollectionInfo(ICollection info, IWmiInstance instance, string propertyName) { Fx.Assert(null != info, ""); Fx.Assert(null != instance, ""); //warning 56507 : Prefer 'string.IsNullOrEmpty(action)' over checks for null and/or emptiness. #pragma warning suppress 56507 //[....]; Asserting non-null object for marshalling reasons. Empty string may be valid input. Fx.Assert(null != propertyName, ""); string[] data = new string[info.Count]; int i = 0; foreach (object o in info) { data[i++] = o.ToString(); } instance.SetProperty(propertyName, data); }
public static void FillCollectionInfo(IEnumerable info, IWmiInstance instance, string propertyName) { int num = 0; using (IEnumerator enumerator = info.GetEnumerator()) { while (enumerator.MoveNext()) { object current = enumerator.Current; num++; } } string[] strArray = new string[num]; num = 0; foreach (object obj2 in info) { strArray[num++] = obj2.ToString(); } instance.SetProperty(propertyName, strArray); }
static void FillBindingInfo(EndpointInfo endpoint, IWmiInstance instance) { Fx.Assert(null != endpoint, ""); Fx.Assert(null != instance, ""); IWmiInstance binding = instance.NewInstance(AdministrationStrings.Binding); IWmiInstance[] bindings = new IWmiInstance[endpoint.Binding.Elements.Count]; for (int j = 0; j < bindings.Length; ++j) { bindings[j] = binding; FillBindingInfo(endpoint.Binding.Elements[j], ref bindings[j]); } binding.SetProperty(AdministrationStrings.BindingElements, bindings); binding.SetProperty(AdministrationStrings.Name, endpoint.Binding.Name); binding.SetProperty(AdministrationStrings.Namespace, endpoint.Binding.Namespace); binding.SetProperty(AdministrationStrings.CloseTimeout, endpoint.Binding.CloseTimeout); binding.SetProperty(AdministrationStrings.Scheme, endpoint.Binding.Scheme); binding.SetProperty(AdministrationStrings.OpenTimeout, endpoint.Binding.OpenTimeout); binding.SetProperty(AdministrationStrings.ReceiveTimeout, endpoint.Binding.ReceiveTimeout); binding.SetProperty(AdministrationStrings.SendTimeout, endpoint.Binding.SendTimeout); instance.SetProperty(AdministrationStrings.Binding, binding); }
static void FillExtendedProtectionPolicy(IWmiInstance instance, ExtendedProtectionPolicy policy) { IWmiInstance extendedProtectionPolicy = instance.NewInstance(AdministrationStrings.ExtendedProtectionPolicy); extendedProtectionPolicy.SetProperty(AdministrationStrings.PolicyEnforcement, policy.PolicyEnforcement.ToString()); extendedProtectionPolicy.SetProperty(AdministrationStrings.ProtectionScenario, policy.ProtectionScenario.ToString()); if (policy.CustomServiceNames != null) { List<string> serviceNames = new List<string>(policy.CustomServiceNames.Count); foreach (string serviceName in policy.CustomServiceNames) { serviceNames.Add(serviceName); } extendedProtectionPolicy.SetProperty(AdministrationStrings.CustomServiceNames, serviceNames.ToArray()); } if (policy.CustomChannelBinding != null) { extendedProtectionPolicy.SetProperty(AdministrationStrings.CustomChannelBinding, policy.CustomChannelBinding.GetType().ToString()); } instance.SetProperty(AdministrationStrings.ExtendedProtectionPolicy, extendedProtectionPolicy); }
private static void FillReaderQuotas(IWmiInstance instance, XmlDictionaryReaderQuotas readerQuotas) { IWmiInstance instance2 = instance.NewInstance("XmlDictionaryReaderQuotas"); instance2.SetProperty("MaxArrayLength", readerQuotas.MaxArrayLength); instance2.SetProperty("MaxBytesPerRead", readerQuotas.MaxBytesPerRead); instance2.SetProperty("MaxDepth", readerQuotas.MaxDepth); instance2.SetProperty("MaxNameTableCharCount", readerQuotas.MaxNameTableCharCount); instance2.SetProperty("MaxStringContentLength", readerQuotas.MaxStringContentLength); instance.SetProperty("ReaderQuotas", instance2); }
private static void FillBehaviorInfo(IEndpointBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is ClientCredentials) { instance = existingInstance.NewInstance("ClientCredentials"); ClientCredentials credentials = (ClientCredentials) behavior; instance.SetProperty("SupportInteractive", credentials.SupportInteractive); if ((credentials.ClientCertificate != null) && (credentials.ClientCertificate.Certificate != null)) { instance.SetProperty("ClientCertificate", credentials.ClientCertificate.Certificate.ToString()); } if (credentials.IssuedToken != null) { string str = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[] { "CacheIssuedTokens", credentials.IssuedToken.CacheIssuedTokens }); instance.SetProperty("IssuedToken", str); } if (credentials.HttpDigest != null) { string str2 = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[] { "AllowedImpersonationLevel", credentials.HttpDigest.AllowedImpersonationLevel.ToString() }); instance.SetProperty("HttpDigest", str2); } if ((credentials.Peer != null) && (credentials.Peer.Certificate != null)) { instance.SetProperty("Peer", credentials.Peer.Certificate.ToString(true)); } if (credentials.UserName != null) { instance.SetProperty("UserName", "********"); } if (credentials.Windows != null) { string str3 = string.Format(CultureInfo.InvariantCulture, "{0}: {1}, {2}: {3}", new object[] { "AllowedImpersonationLevel", credentials.Windows.AllowedImpersonationLevel.ToString(), "AllowNtlm", credentials.Windows.AllowNtlm }); instance.SetProperty("Windows", str3); } } else if (behavior is MustUnderstandBehavior) { instance = existingInstance.NewInstance("MustUnderstandBehavior"); } else if (behavior is SynchronousReceiveBehavior) { instance = existingInstance.NewInstance("SynchronousReceiveBehavior"); } else if (behavior is DispatcherSynchronizationBehavior) { instance = existingInstance.NewInstance("DispatcherSynchronizationBehavior"); } else if (behavior is TransactedBatchingBehavior) { instance = existingInstance.NewInstance("TransactedBatchingBehavior"); instance.SetProperty("MaxBatchSize", ((TransactedBatchingBehavior) behavior).MaxBatchSize); } else if (behavior is ClientViaBehavior) { instance = existingInstance.NewInstance("ClientViaBehavior"); instance.SetProperty("Uri", ((ClientViaBehavior) behavior).Uri.ToString()); } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
internal static void FillEndpointInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { instance.SetProperty("CounterInstanceName", PerformanceCounters.PerformanceCountersEnabled ? EndpointPerformanceCountersBase.CreateFriendlyInstanceName(endpoint.ServiceName, endpoint.Contract.Name, endpoint.Address.AbsoluteUri.ToUpperInvariant()) : string.Empty); instance.SetProperty("Name", endpoint.Name); instance.SetProperty("ContractName", endpoint.Contract.Name); FillAddressInfo(endpoint, instance); FillContractInfo(endpoint, instance); FillBindingInfo(endpoint, instance); FillBehaviorsInfo(endpoint, instance); }
private static void FillExtendedProtectionPolicy(IWmiInstance instance, ExtendedProtectionPolicy policy) { IWmiInstance instance2 = instance.NewInstance("ExtendedProtectionPolicy"); instance2.SetProperty("PolicyEnforcement", policy.PolicyEnforcement.ToString()); instance2.SetProperty("ProtectionScenario", policy.ProtectionScenario.ToString()); if (policy.CustomServiceNames != null) { List<string> list = new List<string>(policy.CustomServiceNames.Count); foreach (string str in policy.CustomServiceNames) { list.Add(str); } instance2.SetProperty("CustomServiceNames", list.ToArray()); } if (policy.CustomChannelBinding != null) { instance2.SetProperty("CustomChannelBinding", policy.CustomChannelBinding.GetType().ToString()); } instance.SetProperty("ExtendedProtectionPolicy", instance2); }
static void FillAddressInfo(EndpointInfo endpoint, IWmiInstance instance) { Fx.Assert(null != endpoint, ""); Fx.Assert(null != instance, ""); string[] headers = new string[endpoint.Headers.Count]; int i = 0; foreach (AddressHeader header in endpoint.Headers) { PlainXmlWriter xmlWriter = new PlainXmlWriter(); header.WriteAddressHeader(xmlWriter); headers[i++] = xmlWriter.ToString(); } ProviderBase.FillCollectionInfo(headers, instance, AdministrationStrings.AddressHeaders); instance.SetProperty(AdministrationStrings.Address, endpoint.Address == null ? String.Empty : endpoint.Address.ToString()); instance.SetProperty(AdministrationStrings.ListenUri, endpoint.ListenUri == null ? String.Empty : endpoint.ListenUri.ToString()); instance.SetProperty(AdministrationStrings.Identity, endpoint.Identity == null ? String.Empty : endpoint.Identity.ToString()); }
static void FillReaderQuotas(IWmiInstance instance, XmlDictionaryReaderQuotas readerQuotas) { Fx.Assert(null != instance, ""); Fx.Assert(null != readerQuotas, ""); IWmiInstance readerQuotasInstance = instance.NewInstance(AdministrationStrings.XmlDictionaryReaderQuotas); readerQuotasInstance.SetProperty(AdministrationStrings.MaxArrayLength, readerQuotas.MaxArrayLength); readerQuotasInstance.SetProperty(AdministrationStrings.MaxBytesPerRead, readerQuotas.MaxBytesPerRead); readerQuotasInstance.SetProperty(AdministrationStrings.MaxDepth, readerQuotas.MaxDepth); readerQuotasInstance.SetProperty(AdministrationStrings.MaxNameTableCharCount, readerQuotas.MaxNameTableCharCount); readerQuotasInstance.SetProperty(AdministrationStrings.MaxStringContentLength, readerQuotas.MaxStringContentLength); instance.SetProperty(AdministrationStrings.ReaderQuotas, readerQuotasInstance); }
void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { wmiInstance.SetProperty("AddressFilterMode", this.AddressFilterMode.ToString()); wmiInstance.SetProperty("ConfigurationName", this.ConfigurationName); wmiInstance.SetProperty("IgnoreExtensionDataObject", this.IgnoreExtensionDataObject); wmiInstance.SetProperty("IncludeExceptionDetailInFaults", this.IncludeExceptionDetailInFaults); wmiInstance.SetProperty("MaxItemsInObjectGraph", this.MaxItemsInObjectGraph); wmiInstance.SetProperty("Name", this.Name); wmiInstance.SetProperty("Namespace", this.Namespace); wmiInstance.SetProperty("UseSynchronizationContext", this.UseSynchronizationContext); wmiInstance.SetProperty("ValidateMustUnderstand", this.ValidateMustUnderstand); wmiInstance.SetProperty("WorkflowType", this.workflowDefinitionContext.WorkflowName); wmiInstance.SetProperty("WorkflowDefinitionPath", this.workflowDefinitionPath); wmiInstance.SetProperty("WorkflowRulesPath", this.workflowRulesPath); }
private static void FillContract(IWmiInstance contract, ContractDescription contractDescription) { contract.SetProperty("Type", contractDescription.ContractType.Name); if (null != contractDescription.CallbackContractType) { contract.SetProperty("CallbackContract", ContractReference(contractDescription.CallbackContractType.Name)); } contract.SetProperty("Name", contractDescription.Name); contract.SetProperty("Namespace", contractDescription.Namespace); contract.SetProperty("SessionMode", contractDescription.SessionMode.ToString()); IWmiInstance[] instanceArray = new IWmiInstance[contractDescription.Operations.Count]; for (int i = 0; i < instanceArray.Length; i++) { OperationDescription operationDescription = contractDescription.Operations[i]; IWmiInstance operation = contract.NewInstance("Operation"); FillOperation(operation, operationDescription); instanceArray[i] = operation; } contract.SetProperty("Operations", instanceArray); FillBehaviorsInfo(contract, contractDescription.Behaviors); }
private static void FillBehaviorsInfo(System.ServiceModel.Administration.EndpointInfo info, IWmiInstance instance) { List<IWmiInstance> list = new List<IWmiInstance>(info.Behaviors.Count); foreach (IEndpointBehavior behavior in info.Behaviors) { IWmiInstance instance2; FillBehaviorInfo(behavior, instance, out instance2); if (instance2 != null) { list.Add(instance2); } } instance.SetProperty("Behaviors", list.ToArray()); }
void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { if (wmiInstance == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("wmiInstance"); wmiInstance.SetProperty("BodyStyle", (object) ((object) this.BodyStyle).ToString()); wmiInstance.SetProperty("IsBodyStyleSetExplicitly", (object) this.IsBodyStyleSetExplicitly.ToString()); wmiInstance.SetProperty("RequestFormat", (object) ((object) this.RequestFormat).ToString()); wmiInstance.SetProperty("IsRequestFormatSetExplicitly", (object) this.IsRequestFormatSetExplicitly.ToString()); wmiInstance.SetProperty("ResponseFormat", (object) ((object) this.ResponseFormat).ToString()); wmiInstance.SetProperty("IsResponseFormatSetExplicitly", (object) this.IsResponseFormatSetExplicitly.ToString()); wmiInstance.SetProperty("UriTemplate", (object) this.UriTemplate); }
void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { wmiInstance.SetProperty("CachedInstanceExpiration", this.CachedInstanceExpiration.ToString()); }
void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { wmiInstance.SetProperty("SaveStateInOperationTransaction", this.saveStateInOperationTransaction); }
static void FillBehaviorsInfo(EndpointInfo info, IWmiInstance instance) { Fx.Assert(null != instance, ""); List<IWmiInstance> behaviors = new List<IWmiInstance>(info.Behaviors.Count); foreach (IEndpointBehavior behavior in info.Behaviors) { IWmiInstance behaviorInstance; FillBehaviorInfo(behavior, instance, out behaviorInstance); if (null != behaviorInstance) { behaviors.Add(behaviorInstance); } } instance.SetProperty(AdministrationStrings.Behaviors, behaviors.ToArray()); }
private static void FillBehaviorsInfo(IWmiInstance operation, KeyedByTypeCollection<IOperationBehavior> behaviors) { List<IWmiInstance> list = new List<IWmiInstance>(behaviors.Count); foreach (IOperationBehavior behavior in behaviors) { IWmiInstance instance; FillBehaviorInfo(behavior, operation, out instance); if (instance != null) { list.Add(instance); } } operation.SetProperty("Behaviors", list.ToArray()); }
private static void FillBindingInfo(BindingElement bindingElement, ref IWmiInstance instance) { if (bindingElement is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) bindingElement; instance = instance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { System.Type serviceModelBaseType = AdministrationHelpers.GetServiceModelBaseType(bindingElement.GetType()); if (null != serviceModelBaseType) { instance = instance.NewInstance(serviceModelBaseType.Name); if (bindingElement is TransportBindingElement) { TransportBindingElement element = (TransportBindingElement) bindingElement; instance.SetProperty("ManualAddressing", element.ManualAddressing); instance.SetProperty("MaxReceivedMessageSize", element.MaxReceivedMessageSize); instance.SetProperty("MaxBufferPoolSize", element.MaxBufferPoolSize); instance.SetProperty("Scheme", element.Scheme); if (bindingElement is ConnectionOrientedTransportBindingElement) { ConnectionOrientedTransportBindingElement element2 = (ConnectionOrientedTransportBindingElement) bindingElement; instance.SetProperty("ConnectionBufferSize", element2.ConnectionBufferSize); instance.SetProperty("HostNameComparisonMode", element2.HostNameComparisonMode.ToString()); instance.SetProperty("ChannelInitializationTimeout", element2.ChannelInitializationTimeout); instance.SetProperty("MaxBufferSize", element2.MaxBufferSize); instance.SetProperty("MaxPendingConnections", element2.MaxPendingConnections); instance.SetProperty("MaxOutputDelay", element2.MaxOutputDelay); instance.SetProperty("MaxPendingAccepts", element2.MaxPendingAccepts); instance.SetProperty("TransferMode", element2.TransferMode.ToString()); if (bindingElement is TcpTransportBindingElement) { TcpTransportBindingElement element3 = (TcpTransportBindingElement) bindingElement; instance.SetProperty("ListenBacklog", element3.ListenBacklog); instance.SetProperty("PortSharingEnabled", element3.PortSharingEnabled); instance.SetProperty("TeredoEnabled", element3.TeredoEnabled); IWmiInstance instance2 = instance.NewInstance("TcpConnectionPoolSettings"); instance2.SetProperty("GroupName", element3.ConnectionPoolSettings.GroupName); instance2.SetProperty("IdleTimeout", element3.ConnectionPoolSettings.IdleTimeout); instance2.SetProperty("LeaseTimeout", element3.ConnectionPoolSettings.LeaseTimeout); instance2.SetProperty("MaxOutboundConnectionsPerEndpoint", element3.ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint); instance.SetProperty("ConnectionPoolSettings", instance2); FillExtendedProtectionPolicy(instance, element3.ExtendedProtectionPolicy); } else if (bindingElement is NamedPipeTransportBindingElement) { NamedPipeTransportBindingElement element4 = (NamedPipeTransportBindingElement) bindingElement; IWmiInstance instance3 = instance.NewInstance("NamedPipeConnectionPoolSettings"); instance3.SetProperty("GroupName", element4.ConnectionPoolSettings.GroupName); instance3.SetProperty("IdleTimeout", element4.ConnectionPoolSettings.IdleTimeout); instance3.SetProperty("MaxOutboundConnectionsPerEndpoint", element4.ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint); instance.SetProperty("ConnectionPoolSettings", instance3); } } else if (!(bindingElement is HttpTransportBindingElement)) { if (!(bindingElement is MsmqBindingElementBase)) { if (bindingElement is PeerTransportBindingElement) { PeerTransportBindingElement element9 = (PeerTransportBindingElement) bindingElement; instance.SetProperty("ListenIPAddress", element9.ListenIPAddress); instance.SetProperty("Port", element9.Port); IWmiInstance instance4 = instance.NewInstance("PeerSecuritySettings"); instance4.SetProperty("Mode", element9.Security.Mode.ToString()); IWmiInstance instance5 = instance4.NewInstance("PeerTransportSecuritySettings"); instance5.SetProperty("CredentialType", element9.Security.Transport.CredentialType.ToString()); instance4.SetProperty("Transport", instance5); instance.SetProperty("Security", instance4); } } else { MsmqBindingElementBase base2 = (MsmqBindingElementBase) bindingElement; if (null != base2.CustomDeadLetterQueue) { instance.SetProperty("CustomDeadLetterQueue", base2.CustomDeadLetterQueue.AbsoluteUri.ToString()); } instance.SetProperty("DeadLetterQueue", base2.DeadLetterQueue); instance.SetProperty("Durable", base2.Durable); instance.SetProperty("ExactlyOnce", base2.ExactlyOnce); instance.SetProperty("MaxRetryCycles", base2.MaxRetryCycles); instance.SetProperty("ReceiveContextEnabled", base2.ReceiveContextEnabled); instance.SetProperty("ReceiveErrorHandling", base2.ReceiveErrorHandling); instance.SetProperty("ReceiveRetryCount", base2.ReceiveRetryCount); instance.SetProperty("RetryCycleDelay", base2.RetryCycleDelay); instance.SetProperty("TimeToLive", base2.TimeToLive); instance.SetProperty("UseSourceJournal", base2.UseSourceJournal); instance.SetProperty("UseMsmqTracing", base2.UseMsmqTracing); instance.SetProperty("ValidityDuration", base2.ValidityDuration); MsmqTransportBindingElement element7 = base2 as MsmqTransportBindingElement; if (element7 != null) { instance.SetProperty("MaxPoolSize", element7.MaxPoolSize); instance.SetProperty("QueueTransferProtocol", element7.QueueTransferProtocol); instance.SetProperty("UseActiveDirectory", element7.UseActiveDirectory); } MsmqIntegrationBindingElement element8 = base2 as MsmqIntegrationBindingElement; if (element8 != null) { instance.SetProperty("SerializationFormat", element8.SerializationFormat.ToString()); } } } else { HttpTransportBindingElement element5 = (HttpTransportBindingElement) bindingElement; instance.SetProperty("AllowCookies", element5.AllowCookies); instance.SetProperty("AuthenticationScheme", element5.AuthenticationScheme.ToString()); instance.SetProperty("BypassProxyOnLocal", element5.BypassProxyOnLocal); instance.SetProperty("DecompressionEnabled", element5.DecompressionEnabled); instance.SetProperty("HostNameComparisonMode", element5.HostNameComparisonMode.ToString()); instance.SetProperty("KeepAliveEnabled", element5.KeepAliveEnabled); instance.SetProperty("MaxBufferSize", element5.MaxBufferSize); if (null != element5.ProxyAddress) { instance.SetProperty("ProxyAddress", element5.ProxyAddress.AbsoluteUri.ToString()); } instance.SetProperty("ProxyAuthenticationScheme", element5.ProxyAuthenticationScheme.ToString()); instance.SetProperty("Realm", element5.Realm); instance.SetProperty("TransferMode", element5.TransferMode.ToString()); instance.SetProperty("UnsafeConnectionNtlmAuthentication", element5.UnsafeConnectionNtlmAuthentication); instance.SetProperty("UseDefaultWebProxy", element5.UseDefaultWebProxy); FillExtendedProtectionPolicy(instance, element5.ExtendedProtectionPolicy); if (bindingElement is HttpsTransportBindingElement) { HttpsTransportBindingElement element6 = (HttpsTransportBindingElement) bindingElement; instance.SetProperty("RequireClientCertificate", element6.RequireClientCertificate); } } } else if (bindingElement is PeerResolverBindingElement) { PeerResolverBindingElement element10 = (PeerResolverBindingElement) bindingElement; instance.SetProperty("ReferralPolicy", element10.ReferralPolicy.ToString()); if (bindingElement is PeerCustomResolverBindingElement) { PeerCustomResolverBindingElement element11 = (PeerCustomResolverBindingElement) bindingElement; if (element11.Address != null) { instance.SetProperty("Address", element11.Address.ToString()); } if (element11.Binding != null) { instance.SetProperty("Binding", element11.Binding.ToString()); } } } else if (bindingElement is ReliableSessionBindingElement) { ReliableSessionBindingElement element12 = (ReliableSessionBindingElement) bindingElement; instance.SetProperty("AcknowledgementInterval", element12.AcknowledgementInterval); instance.SetProperty("FlowControlEnabled", element12.FlowControlEnabled); instance.SetProperty("InactivityTimeout", element12.InactivityTimeout); instance.SetProperty("MaxPendingChannels", element12.MaxPendingChannels); instance.SetProperty("MaxRetryCount", element12.MaxRetryCount); instance.SetProperty("MaxTransferWindowSize", element12.MaxTransferWindowSize); instance.SetProperty("Ordered", element12.Ordered); instance.SetProperty("ReliableMessagingVersion", element12.ReliableMessagingVersion.ToString()); } else if (bindingElement is SecurityBindingElement) { SecurityBindingElement element13 = (SecurityBindingElement) bindingElement; instance.SetProperty("AllowInsecureTransport", element13.AllowInsecureTransport); instance.SetProperty("DefaultAlgorithmSuite", element13.DefaultAlgorithmSuite.ToString()); instance.SetProperty("EnableUnsecuredResponse", element13.EnableUnsecuredResponse); instance.SetProperty("IncludeTimestamp", element13.IncludeTimestamp); instance.SetProperty("KeyEntropyMode", element13.KeyEntropyMode.ToString()); instance.SetProperty("SecurityHeaderLayout", element13.SecurityHeaderLayout.ToString()); instance.SetProperty("MessageSecurityVersion", element13.MessageSecurityVersion.ToString()); IWmiInstance instance6 = instance.NewInstance("LocalServiceSecuritySettings"); instance6.SetProperty("DetectReplays", element13.LocalServiceSettings.DetectReplays); instance6.SetProperty("InactivityTimeout", element13.LocalServiceSettings.InactivityTimeout); instance6.SetProperty("IssuedCookieLifetime", element13.LocalServiceSettings.IssuedCookieLifetime); instance6.SetProperty("MaxCachedCookies", element13.LocalServiceSettings.MaxCachedCookies); instance6.SetProperty("MaxClockSkew", element13.LocalServiceSettings.MaxClockSkew); instance6.SetProperty("MaxPendingSessions", element13.LocalServiceSettings.MaxPendingSessions); instance6.SetProperty("MaxStatefulNegotiations", element13.LocalServiceSettings.MaxStatefulNegotiations); instance6.SetProperty("NegotiationTimeout", element13.LocalServiceSettings.NegotiationTimeout); instance6.SetProperty("ReconnectTransportOnFailure", element13.LocalServiceSettings.ReconnectTransportOnFailure); instance6.SetProperty("ReplayCacheSize", element13.LocalServiceSettings.ReplayCacheSize); instance6.SetProperty("ReplayWindow", element13.LocalServiceSettings.ReplayWindow); instance6.SetProperty("SessionKeyRenewalInterval", element13.LocalServiceSettings.SessionKeyRenewalInterval); instance6.SetProperty("SessionKeyRolloverInterval", element13.LocalServiceSettings.SessionKeyRolloverInterval); instance6.SetProperty("TimestampValidityDuration", element13.LocalServiceSettings.TimestampValidityDuration); instance.SetProperty("LocalServiceSecuritySettings", instance6); if (bindingElement is AsymmetricSecurityBindingElement) { AsymmetricSecurityBindingElement element14 = (AsymmetricSecurityBindingElement) bindingElement; instance.SetProperty("MessageProtectionOrder", element14.MessageProtectionOrder.ToString()); instance.SetProperty("RequireSignatureConfirmation", element14.RequireSignatureConfirmation); } else if (bindingElement is SymmetricSecurityBindingElement) { SymmetricSecurityBindingElement element15 = (SymmetricSecurityBindingElement) bindingElement; instance.SetProperty("MessageProtectionOrder", element15.MessageProtectionOrder.ToString()); instance.SetProperty("RequireSignatureConfirmation", element15.RequireSignatureConfirmation); } } else if (bindingElement is WindowsStreamSecurityBindingElement) { WindowsStreamSecurityBindingElement element16 = (WindowsStreamSecurityBindingElement) bindingElement; instance.SetProperty("ProtectionLevel", element16.ProtectionLevel.ToString()); } else if (bindingElement is SslStreamSecurityBindingElement) { SslStreamSecurityBindingElement element17 = (SslStreamSecurityBindingElement) bindingElement; instance.SetProperty("RequireClientCertificate", element17.RequireClientCertificate); } else if (bindingElement is CompositeDuplexBindingElement) { CompositeDuplexBindingElement element18 = (CompositeDuplexBindingElement) bindingElement; if (element18.ClientBaseAddress != null) { instance.SetProperty("ClientBaseAddress", element18.ClientBaseAddress.AbsoluteUri); } } else if (bindingElement is OneWayBindingElement) { OneWayBindingElement element19 = (OneWayBindingElement) bindingElement; IWmiInstance instance7 = instance.NewInstance("ChannelPoolSettings"); instance7.SetProperty("IdleTimeout", element19.ChannelPoolSettings.IdleTimeout); instance7.SetProperty("LeaseTimeout", element19.ChannelPoolSettings.LeaseTimeout); instance7.SetProperty("MaxOutboundChannelsPerEndpoint", element19.ChannelPoolSettings.MaxOutboundChannelsPerEndpoint); instance.SetProperty("ChannelPoolSettings", instance7); instance.SetProperty("PacketRoutable", element19.PacketRoutable); instance.SetProperty("MaxAcceptedChannels", element19.MaxAcceptedChannels); } else if (bindingElement is MessageEncodingBindingElement) { MessageEncodingBindingElement element20 = (MessageEncodingBindingElement) bindingElement; instance.SetProperty("MessageVersion", element20.MessageVersion.ToString()); if (bindingElement is BinaryMessageEncodingBindingElement) { BinaryMessageEncodingBindingElement element21 = (BinaryMessageEncodingBindingElement) bindingElement; instance.SetProperty("MaxSessionSize", element21.MaxSessionSize); instance.SetProperty("MaxReadPoolSize", element21.MaxReadPoolSize); instance.SetProperty("MaxWritePoolSize", element21.MaxWritePoolSize); if (element21.ReaderQuotas != null) { FillReaderQuotas(instance, element21.ReaderQuotas); } } else if (!(bindingElement is TextMessageEncodingBindingElement)) { if (bindingElement is MtomMessageEncodingBindingElement) { MtomMessageEncodingBindingElement element23 = (MtomMessageEncodingBindingElement) bindingElement; instance.SetProperty("Encoding", element23.WriteEncoding.WebName); instance.SetProperty("MessageVersion", element23.MessageVersion.ToString()); instance.SetProperty("MaxReadPoolSize", element23.MaxReadPoolSize); instance.SetProperty("MaxWritePoolSize", element23.MaxWritePoolSize); if (element23.ReaderQuotas != null) { FillReaderQuotas(instance, element23.ReaderQuotas); } } } else { TextMessageEncodingBindingElement element22 = (TextMessageEncodingBindingElement) bindingElement; instance.SetProperty("Encoding", element22.WriteEncoding.WebName); instance.SetProperty("MaxReadPoolSize", element22.MaxReadPoolSize); instance.SetProperty("MaxWritePoolSize", element22.MaxWritePoolSize); if (element22.ReaderQuotas != null) { FillReaderQuotas(instance, element22.ReaderQuotas); } } } else if (bindingElement is TransactionFlowBindingElement) { TransactionFlowBindingElement element24 = (TransactionFlowBindingElement) bindingElement; instance.SetProperty("TransactionFlow", element24.Transactions); instance.SetProperty("TransactionProtocol", element24.TransactionProtocol.ToString()); instance.SetProperty("AllowWildcardAction", element24.AllowWildcardAction); } else if (bindingElement is PrivacyNoticeBindingElement) { PrivacyNoticeBindingElement element25 = (PrivacyNoticeBindingElement) bindingElement; instance.SetProperty("Url", element25.Url.ToString()); instance.SetProperty("PrivacyNoticeVersion", element25.Version); } } } }
private static void FillOperation(IWmiInstance operation, OperationDescription operationDescription) { operation.SetProperty("Name", operationDescription.Name); operation.SetProperty("Action", FixWildcardAction(operationDescription.Messages[0].Action)); if (operationDescription.Messages.Count > 1) { operation.SetProperty("ReplyAction", FixWildcardAction(operationDescription.Messages[1].Action)); } operation.SetProperty("IsOneWay", operationDescription.IsOneWay); operation.SetProperty("IsInitiating", operationDescription.IsInitiating); operation.SetProperty("IsTerminating", operationDescription.IsTerminating); operation.SetProperty("AsyncPattern", null != operationDescription.BeginMethod); if (null != operationDescription.SyncMethod) { if (null != operationDescription.SyncMethod.ReturnType) { operation.SetProperty("ReturnType", operationDescription.SyncMethod.ReturnType.Name); } operation.SetProperty("MethodSignature", operationDescription.SyncMethod.ToString()); ParameterInfo[] parameters = operationDescription.SyncMethod.GetParameters(); string[] strArray = new string[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { strArray[i] = parameters[i].ParameterType.ToString(); } operation.SetProperty("ParameterTypes", strArray); } operation.SetProperty("IsCallback", operationDescription.Messages[0].Direction == MessageDirection.Output); FillBehaviorsInfo(operation, operationDescription.Behaviors); }
private static void FillContractInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { instance.SetProperty("Contract", ContractInstanceProvider.ContractReference(endpoint.Contract.Name)); }
private static void FillBindingInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { IWmiInstance instance2 = instance.NewInstance("Binding"); IWmiInstance[] instanceArray = new IWmiInstance[endpoint.Binding.Elements.Count]; for (int i = 0; i < instanceArray.Length; i++) { instanceArray[i] = instance2; FillBindingInfo(endpoint.Binding.Elements[i], ref instanceArray[i]); } instance2.SetProperty("BindingElements", instanceArray); instance2.SetProperty("Name", endpoint.Binding.Name); instance2.SetProperty("Namespace", endpoint.Binding.Namespace); instance2.SetProperty("CloseTimeout", endpoint.Binding.CloseTimeout); instance2.SetProperty("Scheme", endpoint.Binding.Scheme); instance2.SetProperty("OpenTimeout", endpoint.Binding.OpenTimeout); instance2.SetProperty("ReceiveTimeout", endpoint.Binding.ReceiveTimeout); instance2.SetProperty("SendTimeout", endpoint.Binding.SendTimeout); instance.SetProperty("Binding", instance2); }
static void FillBehaviorInfo(IEndpointBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { Fx.Assert(null != existingInstance, ""); Fx.Assert(null != behavior, ""); instance = null; if (behavior is ClientCredentials) { instance = existingInstance.NewInstance("ClientCredentials"); ClientCredentials specificBehavior = (ClientCredentials)behavior; instance.SetProperty(AdministrationStrings.SupportInteractive, specificBehavior.SupportInteractive); if (specificBehavior.ClientCertificate != null && specificBehavior.ClientCertificate.Certificate != null) { instance.SetProperty(AdministrationStrings.ClientCertificate, specificBehavior.ClientCertificate.Certificate.ToString()); } if (specificBehavior.IssuedToken != null) { string result = String.Format(CultureInfo.InvariantCulture, "{0}: {1}", AdministrationStrings.CacheIssuedTokens, specificBehavior.IssuedToken.CacheIssuedTokens); instance.SetProperty(AdministrationStrings.IssuedToken, result); } if (specificBehavior.HttpDigest != null) { string result = String.Format(CultureInfo.InvariantCulture, "{0}: {1}", AdministrationStrings.AllowedImpersonationLevel, specificBehavior.HttpDigest.AllowedImpersonationLevel.ToString()); instance.SetProperty(AdministrationStrings.HttpDigest, result); } if (specificBehavior.Peer != null && specificBehavior.Peer.Certificate != null) { instance.SetProperty(AdministrationStrings.Peer, specificBehavior.Peer.Certificate.ToString(true)); } if (specificBehavior.UserName != null) { instance.SetProperty(AdministrationStrings.UserName, "********"); } if (specificBehavior.Windows != null) { #pragma warning disable 618 // To suppress AllowNtlm warning. string result = String.Format(CultureInfo.InvariantCulture, "{0}: {1}, {2}: {3}", AdministrationStrings.AllowedImpersonationLevel, specificBehavior.Windows.AllowedImpersonationLevel.ToString(), AdministrationStrings.AllowNtlm, specificBehavior.Windows.AllowNtlm); #pragma warning restore 618 instance.SetProperty(AdministrationStrings.Windows, result); } } else if (behavior is MustUnderstandBehavior) { instance = existingInstance.NewInstance("MustUnderstandBehavior"); } else if (behavior is SynchronousReceiveBehavior) { instance = existingInstance.NewInstance("SynchronousReceiveBehavior"); } else if (behavior is DispatcherSynchronizationBehavior) { instance = existingInstance.NewInstance("DispatcherSynchronizationBehavior"); } else if (behavior is TransactedBatchingBehavior) { instance = existingInstance.NewInstance("TransactedBatchingBehavior"); instance.SetProperty(AdministrationStrings.MaxBatchSize, ((TransactedBatchingBehavior)behavior).MaxBatchSize); } else if (behavior is ClientViaBehavior) { instance = existingInstance.NewInstance("ClientViaBehavior"); instance.SetProperty(AdministrationStrings.Uri, ((ClientViaBehavior)behavior).Uri.ToString()); } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider instanceProvider = (IWmiInstanceProvider)behavior; instance = existingInstance.NewInstance(instanceProvider.GetInstanceType()); instanceProvider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (null != instance) { instance.SetProperty(AdministrationStrings.Type, behavior.GetType().FullName); } }