Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Management / Automation / UMPAttributes.cs / 1305376 / UMPAttributes.cs
using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.Diagnostics; using System.Globalization; namespace System.Management.Instrumentation { #region CommonUMPAttributes ////// This attribute declares a class to be exposed as a management /// interface. /// /// It declares the noun to expose in Monad and /// optionally the XML Namespace to expose the class /// through WMI.NET and WS-Management. /// /// /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = false,Inherited=false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementEntityAttribute : Attribute { public ManagementEntityAttribute() { } public string Name { get { return _nounName; } set { _nounName = value; } } public bool External { get { return _isExternalClass; } set { _isExternalClass = value; } } public bool Singleton { get { return _isSingleton; } set { _isSingleton = value; } } private string _nounName; private bool _isExternalClass = false; private bool _isSingleton = false; /* ////// Reference to the Type which acts as a factory for instances /// of this class. /// /// public Type Factory { get { return _factory; } set { _factory = value; } } private Type _factory; public Type FactoryFor { get { return _factoryfor; } set { _factoryfor = value; } } private Type _factoryfor; */ } #endregion CommonUMPAttributes ////// WMI is able to deal with Decoupled and Hosted providers. /// UserHosted for component loaded inproc to the client is not allowed for .NET extension providers. public enum ManagementHostingModel { Decoupled, NetworkService, LocalService, LocalSystem } [AttributeUsage(AttributeTargets.Assembly)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class WmiConfigurationAttribute : Attribute { private string _Scope = null; private string _SecurityRestriction = null; private string _NamespaceSecurity = null; private ManagementHostingModel _HostingModel = ManagementHostingModel.Decoupled; private string _HostingGroup = null; private bool _IdentifyLevel = true; public WmiConfigurationAttribute(string scope) { string namespaceName = scope; if (namespaceName != null) namespaceName = namespaceName.Replace('/', '\\'); if (namespaceName == null || namespaceName.Length == 0) namespaceName = "root\\default"; bool once = true; foreach (string namespacePart in namespaceName.Split('\\')) { if (namespacePart.Length == 0 || (once && String.Compare(namespacePart, "root", StringComparison.OrdinalIgnoreCase) != 0) // Must start with 'root' || !Regex.Match(namespacePart, @"^[a-z,A-Z]").Success // All parts must start with letter || Regex.Match(namespacePart, @"_$").Success // Must not end with an underscore || Regex.Match(namespacePart, @"[^a-z,A-Z,0-9,_,\u0080-\uFFFF]").Success) // Only letters, digits, or underscores { //ManagementException.ThrowWithExtendedInfo(ManagementStatus.InvalidNamespace); } once = false; } _Scope = namespaceName; } /// /// The security descriptor used by instrumentation to filter the providers public string SecurityRestriction { get { return _SecurityRestriction; } set { _SecurityRestriction = value; } } public string NamespaceSecurity { get { return _NamespaceSecurity; } set { _NamespaceSecurity = value; } } public bool IdentifyLevel { get { return _IdentifyLevel; } set { _IdentifyLevel = value; } } public ManagementHostingModel HostingModel { get { return _HostingModel; } set { _HostingModel = value; } } /// /// To support provider separation public string HostingGroup { get { return _HostingGroup; } set { _HostingGroup = value; } } /// /// Scope of the assembly in the target instrumentation space /// In WMI speak is the namespace public string Scope { get { return _Scope; } } } /// /// This is the base class for all attribute which can be applied /// to members of the Automation class. /// /// ////// The Exception member tells Monad which exception coming from the /// member can be treated as non-fatal errors for the pipeline. /// /// [AttributeUsage(AttributeTargets.All)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public abstract class ManagementMemberAttribute : Attribute { ////// The exceptions that can be thrown by the member. /// /// public string Name { get { return _Name; } set { _Name = value; } } private string _Name; } ////// This abstract attribute determines how one would get an instance of the class. /// You can get an instance by: /// 1) Binding to an instance [Bind] /// 2) Creating an instance [Create] /// 3) Using a factory to get an instance [Factory] /// For any particular NOUN, there can only be ONE way to get instances. /// /// [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public abstract class ManagementNewInstanceAttribute : ManagementMemberAttribute { } [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementBindAttribute : ManagementNewInstanceAttribute { ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public ManagementBindAttribute() { } public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementCreateAttribute : ManagementNewInstanceAttribute { ////////// Declares the type that the output should be ///// treated as even if the return value is of ///// type System.Object. ///// ///// } ////// This attribute determines how one would remove a real object /// /// /// [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementRemoveAttribute : ManagementMemberAttribute { ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } ////// This attribute defines the enumerator of instances of the class /// /// [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementEnumeratorAttribute : ManagementNewInstanceAttribute { /* ////// Declares the member as an enumerator for other classes. The other /// Type must specify the Factory property of the AutomationAttribute to /// be this Type. /// /// public Type FactoryFor { get { return _factoryFor; } set { _factoryFor = value; } } private Type _factoryFor; */ ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } ////// Exposes a method or property as a Probe /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementProbeAttribute : ManagementMemberAttribute { ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } #region Task ////// Exposes a method as a task. /// /// ////// The TaskAttribute is placed on a method to expose it as a management task. /// /// If the task enumerates manageable objects, the task declaration should set /// the Enumeration option to true. /// /// ISSUE-2005/06/08-jeffjon /// Does the task need a Schema parameter or should we have a separate Probe /// attribute? /// /// [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementTaskAttribute : ManagementMemberAttribute { public ManagementTaskAttribute() { } ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } #endregion Task #region Naming ////// This attribute defines the ID (key) property of the class. /// /// ////// For Monad, this property is used to do filtering of enumerations. /// /// If used on a parameter, then the attribute must also exist on a property in /// the class. /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementKeyAttribute : ManagementMemberAttribute { public ManagementKeyAttribute() { } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementReferenceAttribute : Attribute { public ManagementReferenceAttribute() { } public string Type { get { return _Type; } set { _Type = value; } } private string _Type; } #endregion Naming #region Configuration ////// Defines a property as the storage for configuration data. /// /// public enum ManagementConfigurationType { Apply, OnCommit }; [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementConfigurationAttribute : ManagementMemberAttribute { ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public ManagementConfigurationAttribute() { updateMode = ManagementConfigurationType.Apply; } public ManagementConfigurationType Mode { get { return updateMode; } set { updateMode = value; } } public Type Schema { get { return _schema; } set { _schema = value; } } private ManagementConfigurationType updateMode; private Type _schema; } [AttributeUsage(AttributeTargets.Method)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementCommitAttribute : ManagementMemberAttribute { } ////// This attribute defines the naming (user friendly name) of method parameters /// /// [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] sealed public class ManagementNameAttribute : Attribute { public ManagementNameAttribute(string name) { _Name = name; } public string Name { get { return _Name; } } private string _Name; } #endregion Configuration /* [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class FactoryAttribute : NewInstanceAttribute { ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public FactoryAttribute() { } public FactoryAttribute(Type t) { } public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class FactoryForAttribute : ManagementMemberAttribute { ////// Declares the type that the output should be /// treated as even if the return value is of /// type System.Object. /// /// public FactoryForAttribute(Type t) { } public Type Schema { get { return _schema; } set { _schema = value; } } private Type _schema; } #region Constraints ////// Constraints the member/option to a minimum and/or maximum length. /// /// ////// This can be used for strings or collections. /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = true)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class ValidateLengthAttribute : Attribute { ////// The minimum length /// /// public int Min { get { return _min; } set { _min = value; } } private int _min = int.MinValue; ////// The maximum length /// /// public int Max { get { return _max; } set { _max = value; } } private int _max = int.MaxValue; } ////// Constraints the member/option to a range of values. /// /// ////// This can be used for strings or collections. /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = true)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class ValidateRangeAttribute : Attribute { ////// Defines the range for the constraint /// /// /// /// The minimum of the range. /// /// /// /// The maximum of the range. /// /// public ValidateRangeAttribute(object lower, object upper) { this._lower = lower; this._upper = upper; } ////// The lower bound for the range /// /// public object Lower { get { return _lower; } set { _lower = value; } } private object _lower; ////// The upper bound for the range /// /// public object Upper { get { return _upper; } set { _upper = value; } } private object _upper; } ////// Constraints the member/option to a pattern represented by a regular expression /// /// ////// This can be used for strings or collections. /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = true)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class ValidatePatternAttribute : Attribute { ////// Defines the pattern for the constraint /// /// /// /// The minimum of the range. /// /// public ValidatePatternAttribute(string pattern) { this._pattern = pattern; } ////// The pattern which defines the constraint /// /// public string Pattern { get { return _pattern; } set { _pattern = value; } } private string _pattern; ////// The options for the regular expression defined by the pattern. /// /// public RegexOptions Options { get { return _options; } set { _options = value; } } private RegexOptions _options = RegexOptions.IgnoreCase; } ////// Constraints the member/option to a number of values. /// /// ////// This can be used for strings or collections. /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = true)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class ValidateCountAttribute : Attribute { ////// Defines the minimum and maximum number of elements. /// /// /// /// The minimum minimum number of elements. /// /// /// /// The maximum number of elements. /// /// public ValidateCountAttribute(int minimum, int maximum) { } ////// The minimum number of elements /// /// public int Minimum; ////// The maximum number of elements /// /// public int Maximum; } ////// Constraints the member/option to a set of values. /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = true)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class ValidateSetAttribute : Attribute { ////// Defines the range for the constraint /// /// /// /// The valid values for the set. /// /// public ValidateSetAttribute(params string[] validValues) { } ////// The valid values for the set. /// /// public string[] ValidValues { get { return null; } set { } } ////// If true, the values are compared in a case-insensitive way. /// If false, the set is constrained to exact matches. /// /// public bool IgnoreCase { get { return _ignoreCase; } set { _ignoreCase = value; } } private bool _ignoreCase = true; } #endregion Constraints ////// Specifies the options for a task. /// /// ////// When placed on a parameter of a task method, this attribute /// describes the options for the parameter. /// /// [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = true)] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class ManagementTaskOptionAttribute : Attribute { ////// If true, the option must be specified. /// /// ////// If false, and the InitialValue is not specified, then /// an initial value will be deduced using the "default" /// keyword in C#. /// /// public bool Mandatory { get { return _mandatory; } set { _mandatory = value; } } private bool _mandatory = true; ////// The initial value of the parameter. Used if Mandatory=false. /// /// public object InitialValue { get { return _initialValue; } set { _initialValue = value; } } private object _initialValue; ////// Monad specific - provides mapping of the pipeline object /// to the parameter value. /// /// public bool ValueFromPipeline { get { return _valueFromPipeline; } set { _valueFromPipeline = value; } } private bool _valueFromPipeline; ////// Monad specific - provides mapping of the pipeline object's /// property with the same name as the parameter to the parameter /// value. /// public bool ValueFromPipelineByPropertyName { get { return _valueFromPipelineByPropertyName; } set { _valueFromPipelineByPropertyName = value; } } private bool _valueFromPipelineByPropertyName; } */ }; // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ExpressionNode.cs
- TagPrefixInfo.cs
- IdentityNotMappedException.cs
- EntityDataSourceWrapperCollection.cs
- SingleAnimation.cs
- EntityDataSourceEntitySetNameItem.cs
- HtmlTableCellCollection.cs
- PolicyLevel.cs
- NativeRecognizer.cs
- ChainOfResponsibility.cs
- documentation.cs
- XmlBoundElement.cs
- RootContext.cs
- TextCompositionManager.cs
- sqlinternaltransaction.cs
- TriggerBase.cs
- MessageEventSubscriptionService.cs
- PassportPrincipal.cs
- TimeZoneInfo.cs
- Deflater.cs
- ReflectionUtil.cs
- SchemaNamespaceManager.cs
- MessageBox.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- NodeInfo.cs
- RadioButton.cs
- XmlCharacterData.cs
- ConnectionManager.cs
- SafeNativeMethodsCLR.cs
- AnnotationAdorner.cs
- XmlWhitespace.cs
- ArcSegment.cs
- ValidatingReaderNodeData.cs
- ScriptingScriptResourceHandlerSection.cs
- XsdCachingReader.cs
- Parser.cs
- XmlSerializationGeneratedCode.cs
- CodeBlockBuilder.cs
- CategoryValueConverter.cs
- XmlSchemaValidationException.cs
- WebBaseEventKeyComparer.cs
- ThicknessKeyFrameCollection.cs
- QilName.cs
- Base64Decoder.cs
- PersistChildrenAttribute.cs
- ValidationEventArgs.cs
- SignatureSummaryDialog.cs
- CmsInterop.cs
- UrlAuthFailedErrorFormatter.cs
- EntityCommandCompilationException.cs
- DataGridViewBindingCompleteEventArgs.cs
- TimeoutStream.cs
- Wizard.cs
- JsonReaderWriterFactory.cs
- ServiceDurableInstance.cs
- ViewgenContext.cs
- CompilerGlobalScopeAttribute.cs
- TargetInvocationException.cs
- QilName.cs
- XmlAtomErrorReader.cs
- Trace.cs
- NeedSkipTokenVisitor.cs
- ContentPresenter.cs
- XhtmlBasicObjectListAdapter.cs
- TextRangeProviderWrapper.cs
- EndOfStreamException.cs
- Ipv6Element.cs
- ProxyGenerator.cs
- PasswordDeriveBytes.cs
- QilStrConcat.cs
- RedistVersionInfo.cs
- HttpWebRequest.cs
- FileDialog_Vista_Interop.cs
- GrammarBuilderWildcard.cs
- XmlSchemaProviderAttribute.cs
- ConnectionStringsSection.cs
- RadioButton.cs
- RadioButtonList.cs
- MetadataAssemblyHelper.cs
- documentsequencetextcontainer.cs
- EncodingDataItem.cs
- ViewPort3D.cs
- ConditionalAttribute.cs
- ScriptBehaviorDescriptor.cs
- FileBasedResourceGroveler.cs
- SettingsSection.cs
- GeometryGroup.cs
- WinFormsSpinner.cs
- BadImageFormatException.cs
- SQLResource.cs
- XmlEncodedRawTextWriter.cs
- CodeIdentifier.cs
- LayoutSettings.cs
- NonBatchDirectoryCompiler.cs
- Directory.cs
- DataServiceRequestOfT.cs
- ParameterElementCollection.cs
- SecurityMode.cs
- WorkflowRuntimeBehavior.cs
- Trace.cs