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);
        }
Esempio n. 12
0
        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);
         }
     }
 }
Esempio n. 16
0
        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));
        }
Esempio n. 19
0
        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);
 }
Esempio n. 33
0
        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);
            }
        }
Esempio n. 34
0
        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);
        }
Esempio n. 35
0
        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);
        }
Esempio n. 38
0
        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());
 }
Esempio n. 51
0
 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);
            }
        }