Skip to content

Instantly share code, notes, and snippets.

@StartAutomating
Last active August 7, 2024 01:04
Show Gist options
  • Save StartAutomating/d75cd9eaccfea1b50bc6523256e539a5 to your computer and use it in GitHub Desktop.
Save StartAutomating/d75cd9eaccfea1b50bc6523256e539a5 to your computer and use it in GitHub Desktop.
Potentially Useful Attributes in PowerShell

PowerShell, as a language, is very self-discoverable.

When you Get-Command, you get a rich object about a command.

This can have a lot of metadata.

You can and should also use inline help (like this script does).

Sometimes, I want more metadata than the command or parameter can actually provide.

Each command or parameter can have N attributes (like [CmdletBinding] or [Parameter])

Only a small number are used by PowerShell. The rest are ignored.

Other ones can be used to form special handshakes with command information (such as a friendly name to display in the UI).

While you can Add-Type/use classes to add your own custom attributes, this would require the author of an arbitrary PowerShell script to have imported your module first.

As such, this file has a single function with all of the useful attributes I've run into so far.

Some of these attributes have been used within tools:

Tool Attribute
Eventful [Diagnostics.Tracing.EventSource]
Piecemeal [ComponentModel.Inheritance]
[Management.Automation.Cmdlet]
[Runtime.CompilerServices.Extension]
<#
.Synopsis
A Collection of Useful Attributes
.Description
A collection / proof of concept of useful attributes that exist in both PowerShell and PowerShell Core, out of the box.
This function outputs useful attributes. It's comments shed light on how these attributes might be used.
.Notes
PowerShell, as a language, is very self-discoverable.
When you Get-Command, you get a rich object about a command.
This can have _a lot_ of metadata.
You can and should also use inline help (like this script does).
Sometimes, I want _more_ metadata than the command or parameter can actually provide.
Each command or parameter can have N attributes (like [CmdletBinding] or [Parameter])
Only a small number are used by PowerShell. The rest are ignored.
Other ones can be used to form special handshakes with command information
(such as a friendly name to display in the UI).
While you can Add-Type/use classes to add your own custom attributes, this would require
the author of an arbitrary PowerShell script to have imported your module first.
As such, this file has a single function with all of the useful attributes I've run into so far.
Some of these attributes have been used within tools:
|Tool|Attribute|
|----|---------|
|[Eventful](https://github.com/Start-Automating/Eventful)|```[Diagnostics.Tracing.EventSource] ``` |
|[Piecemeal](https://github.com/Start-Automating/Piecemeal)|```[ComponentModel.Inheritance] ```<br/>```[Management.Automation.Cmdlet]```<br/>```[Runtime.CompilerServices.Extension]``` |
#>
function Get-UsefulAttribute {
# Can be used for display names/friendlynames (duh)
[ComponentModel.DisplayName('DisplayName')]
# Can be used to categorize
[ComponentModel.Category('A Category')]
# Can also be used to categorize
[ComponentModel.DesignerCategory('A Category')]
# Can also be used for longer descriptions
[data.datasysdescription("A Description")]
# Can be used for arbitrary named metadata!!!!!!!!!!! (basically anything)
[Reflection.AssemblyMetadata('key','value')]
# Unfortunately, it will store a ScriptBlock as a string. Great for syntax highlighting.
[Reflection.AssemblyMetadata('Scriptkey',{"scriptvalue"})]
# Help keywords! If anyone ever wanted to build a better help browser for PowerShell....
[ComponentModel.Design.HelpKeyword("keyword")]
# Private filtering handshakes?
[ComponentModel.ToolboxItemFilter("filter")]
# Highlighting? Databinding? Not quite sure.
[ComponentModel.ToolboxItem('itemname')]
# Can be used to indicate type conversion / next step of the pipeline.
[ComponentModel.TypeConverter('foobar')]
# This is a more obvious databinding property.
[ComponentModel.DefaultBindingProperty("key")]
# This could be quite interesting indeed.
# ValidateScript is nice and useful, but it's not server side.
# This could be useful for describing server-side conditions
# It could also be used as a direct shorthand for the types of values to accept,
# for instance, allowing ValueFromPipeline to accept all objects but using this attribute to formalize how you skip input.
[Diagnostics.ConditionalAttribute("condition=value")]
# Probably for fun, though it could be used to signal "minify me"
[Reflection.ObfuscationAttribute()]
# Can be used to indicate being the source of an event.
# Used in [Eventful](https://github.com/StartAutomating/Eventful) to indicate the name of an outputted event.
[Diagnostics.Tracing.EventSourceAttribute(Name="NameOfEvent")]
# Can be used to declare a contract with a value.
[Diagnostics.Contracts.ContractOption("Category","Setting","value")]
# While used in C# to identify a cmdlet, this is ignored on a function. Thus it can be used to indicate relationships between cmdlets.
# In [Piecemeal](https://github.com/StartAutomating/Piecemeal)] this is used to identify the commands a given extension applies to (when used on a script/function).
[Management.Automation.Cmdlet("Get","Something")]
# Can be used to indicate that it is an extension.
# Optionally used in [Piecemeal](https://github.com/StartAutomating/Piecemeal)]
[Runtime.CompilerServices.Extension()]
param(
<#
This is Some Parameter With a Lot of Attributes.
#>
# Can be used to indicate if a scriptblock/parameter is there for a designer.
[ComponentModel.DesignOnly($true)]
# Could be used to indicate if the parameter can be changed. A given command would have to respect this.
[ComponentModel.ImmutableObject($false)]
# Can be used to indicate if a parameter can be merged.
# An example of where this might be useful would be having a cmdlet where most some parameters are mutually exclusive.
[ComponentModel.MergableProperty($true)]
# Can be used to indicate the default underlying properties that this would bind to.
# (of course, ValueFromPipelineByPropertyName + Aliases will do this just fine)
[ComponentModel.DefaultBindingProperty("foo")]
# DefaultValue could be used to indicate a default in a way that is more discoverable.
# Additionally, since DefaultValue stores an actual object, a ScriptBlock can be directly embedded without being reprocessed.
[ComponentModel.DefaultValue({"bar"})]
# AmbientValue could be used to indicate an ambient value (a value related to the state of other values)
# Additionally, since AmbientValue stores an actual object, a ScriptBlock can be directly embedded without being reprocessed.
[ComponentModel.AmbientValue({"bar"})]
# LookupBinding could be very interesting, since lookup binding attributes give us a value could be loaded from a datastore.
[ComponentModel.LookupBindingProperties("datasource","displayMember","valueMember","lookupMember")]
# Can be used to a relationship between this parameter and another cmdlet.
# Used in [Piecemeal 0.1.4+](https://github.com/StartAutomating/Piecemeal) to indicate that a parameter should only apply when used as an extension for a particular command.
[Management.Automation.Cmdlet("Get","Foo")]
$SomeParameter
)
$myInvocation.MyCommand.ScriptBlock.Attributes
$myInvocation.MyCommand.Parameters.SomeParameter.Attributes
}
Get-UsefulAttribute | Format-List
Attributes Loaded on PowerShell Core (and also in Windows PowerShell)
System.AttributeUsageAttribute
System.CLSCompliantAttribute
System.FlagsAttribute
System.NonSerializedAttribute
System.ObsoleteAttribute
System.ParamArrayAttribute
System.SerializableAttribute
System.STAThreadAttribute
System.MTAThreadAttribute
System.ThreadStaticAttribute
System.ComponentModel.DefaultValueAttribute
System.ComponentModel.EditorBrowsableAttribute
System.Security.AllowPartiallyTrustedCallersAttribute
System.Security.SecurityCriticalAttribute
System.Security.SecurityRulesAttribute
System.Security.SecuritySafeCriticalAttribute
System.Security.SecurityTransparentAttribute
System.Security.SecurityTreatAsSafeAttribute
System.Security.SuppressUnmanagedCodeSecurityAttribute
System.Security.UnverifiableCodeAttribute
System.Runtime.Serialization.OnDeserializedAttribute
System.Runtime.Serialization.OnDeserializingAttribute
System.Runtime.Serialization.OnSerializedAttribute
System.Runtime.Serialization.OnSerializingAttribute
System.Runtime.Serialization.OptionalFieldAttribute
System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute
System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
System.Runtime.Versioning.TargetFrameworkAttribute
System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute
System.Runtime.InteropServices.BestFitMappingAttribute
System.Runtime.InteropServices.ClassInterfaceAttribute
System.Runtime.InteropServices.CoClassAttribute
System.Runtime.InteropServices.ComDefaultInterfaceAttribute
System.Runtime.InteropServices.ComEventInterfaceAttribute
System.Runtime.InteropServices.ComImportAttribute
System.Runtime.InteropServices.ComSourceInterfacesAttribute
System.Runtime.InteropServices.ComVisibleAttribute
System.Runtime.InteropServices.DefaultCharSetAttribute
System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute
System.Runtime.InteropServices.DefaultParameterValueAttribute
System.Runtime.InteropServices.DispIdAttribute
System.Runtime.InteropServices.DllImportAttribute
System.Runtime.InteropServices.FieldOffsetAttribute
System.Runtime.InteropServices.GuidAttribute
System.Runtime.InteropServices.InAttribute
System.Runtime.InteropServices.InterfaceTypeAttribute
System.Runtime.InteropServices.LCIDConversionAttribute
System.Runtime.InteropServices.MarshalAsAttribute
System.Runtime.InteropServices.NativeCallableAttribute
System.Runtime.InteropServices.OptionalAttribute
System.Runtime.InteropServices.OutAttribute
System.Runtime.InteropServices.PreserveSigAttribute
System.Runtime.InteropServices.ProgIdAttribute
System.Runtime.InteropServices.StructLayoutAttribute
System.Runtime.InteropServices.TypeIdentifierAttribute
System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute
System.Runtime.CompilerServices.AccessedThroughPropertyAttribute
System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute
System.Runtime.CompilerServices.AsyncMethodBuilderAttribute
System.Runtime.CompilerServices.AsyncStateMachineAttribute
System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
System.Runtime.CompilerServices.CallerFilePathAttribute
System.Runtime.CompilerServices.CallerLineNumberAttribute
System.Runtime.CompilerServices.CallerMemberNameAttribute
System.Runtime.CompilerServices.CompilationRelaxationsAttribute
System.Runtime.CompilerServices.CompilerGeneratedAttribute
System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
System.Runtime.CompilerServices.CustomConstantAttribute
System.Runtime.CompilerServices.DateTimeConstantAttribute
System.Runtime.CompilerServices.DecimalConstantAttribute
System.Runtime.CompilerServices.DefaultDependencyAttribute
System.Runtime.CompilerServices.DependencyAttribute
System.Runtime.CompilerServices.DisablePrivateReflectionAttribute
System.Runtime.CompilerServices.DiscardableAttribute
System.Runtime.CompilerServices.ExtensionAttribute
System.Runtime.CompilerServices.FixedAddressValueTypeAttribute
System.Runtime.CompilerServices.FixedBufferAttribute
System.Runtime.CompilerServices.IndexerNameAttribute
System.Runtime.CompilerServices.InternalsVisibleToAttribute
System.Runtime.CompilerServices.IsByRefLikeAttribute
System.Runtime.CompilerServices.IteratorStateMachineAttribute
System.Runtime.CompilerServices.MethodImplAttribute
System.Runtime.CompilerServices.IsReadOnlyAttribute
System.Runtime.CompilerServices.ReferenceAssemblyAttribute
System.Runtime.CompilerServices.RuntimeCompatibilityAttribute
System.Runtime.CompilerServices.SpecialNameAttribute
System.Runtime.CompilerServices.StateMachineAttribute
System.Runtime.CompilerServices.StringFreezingAttribute
System.Runtime.CompilerServices.SuppressIldasmAttribute
System.Runtime.CompilerServices.TupleElementNamesAttribute
System.Runtime.CompilerServices.TypeForwardedFromAttribute
System.Runtime.CompilerServices.TypeForwardedToAttribute
System.Runtime.CompilerServices.UnsafeValueTypeAttribute
System.Resources.NeutralResourcesLanguageAttribute
System.Resources.SatelliteContractVersionAttribute
System.Reflection.AssemblyAlgorithmIdAttribute
System.Reflection.AssemblyCompanyAttribute
System.Reflection.AssemblyConfigurationAttribute
System.Reflection.AssemblyCopyrightAttribute
System.Reflection.AssemblyCultureAttribute
System.Reflection.AssemblyDefaultAliasAttribute
System.Reflection.AssemblyDelaySignAttribute
System.Reflection.AssemblyDescriptionAttribute
System.Reflection.AssemblyFileVersionAttribute
System.Reflection.AssemblyFlagsAttribute
System.Reflection.AssemblyInformationalVersionAttribute
System.Reflection.AssemblyKeyFileAttribute
System.Reflection.AssemblyKeyNameAttribute
System.Reflection.AssemblyMetadataAttribute
System.Reflection.AssemblyProductAttribute
System.Reflection.AssemblySignatureKeyAttribute
System.Reflection.AssemblyTitleAttribute
System.Reflection.AssemblyTrademarkAttribute
System.Reflection.AssemblyVersionAttribute
System.Reflection.DefaultMemberAttribute
System.Reflection.ObfuscateAssemblyAttribute
System.Reflection.ObfuscationAttribute
System.Diagnostics.ConditionalAttribute
System.Diagnostics.DebuggableAttribute
System.Diagnostics.DebuggerBrowsableAttribute
System.Diagnostics.DebuggerDisplayAttribute
System.Diagnostics.DebuggerHiddenAttribute
System.Diagnostics.DebuggerNonUserCodeAttribute
System.Diagnostics.DebuggerStepThroughAttribute
System.Diagnostics.DebuggerStepperBoundaryAttribute
System.Diagnostics.DebuggerTypeProxyAttribute
System.Diagnostics.DebuggerVisualizerAttribute
System.Diagnostics.Contracts.PureAttribute
System.Diagnostics.Contracts.ContractClassAttribute
System.Diagnostics.Contracts.ContractClassForAttribute
System.Diagnostics.Contracts.ContractInvariantMethodAttribute
System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute
System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute
System.Diagnostics.Contracts.ContractVerificationAttribute
System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute
System.Diagnostics.Contracts.ContractArgumentValidatorAttribute
System.Diagnostics.Contracts.ContractAbbreviatorAttribute
System.Diagnostics.Contracts.ContractOptionAttribute
System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
System.Diagnostics.CodeAnalysis.AllowNullAttribute
System.Diagnostics.CodeAnalysis.DisallowNullAttribute
System.Diagnostics.CodeAnalysis.MaybeNullAttribute
System.Diagnostics.CodeAnalysis.NotNullAttribute
System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute
System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
System.Diagnostics.Tracing.EventSourceAttribute
System.Diagnostics.Tracing.EventAttribute
System.Diagnostics.Tracing.NonEventAttribute
System.Diagnostics.Tracing.EventDataAttribute
System.Diagnostics.Tracing.EventFieldAttribute
System.Diagnostics.Tracing.EventIgnoreAttribute
System.Runtime.AssemblyTargetedPatchBandAttribute
System.Runtime.TargetedPatchingOptOutAttribute
System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute
System.Runtime.CompilerServices.EnumeratorCancellationAttribute
System.ContextStaticAttribute
System.LoaderOptimizationAttribute
System.Security.Permissions.CodeAccessSecurityAttribute
System.Security.Permissions.SecurityAttribute
System.Security.Permissions.SecurityPermissionAttribute
System.Runtime.Versioning.ComponentGuaranteesAttribute
System.Runtime.Versioning.ResourceConsumptionAttribute
System.Runtime.Versioning.ResourceExposureAttribute
System.Runtime.InteropServices.AutomationProxyAttribute
System.Runtime.InteropServices.ComAliasNameAttribute
System.Runtime.InteropServices.ComCompatibleVersionAttribute
System.Runtime.InteropServices.ComConversionLossAttribute
System.Runtime.InteropServices.ComRegisterFunctionAttribute
System.Runtime.InteropServices.ComUnregisterFunctionAttribute
System.Runtime.InteropServices.IDispatchImplAttribute
System.Runtime.InteropServices.ImportedFromTypeLibAttribute
System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute
System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute
System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute
System.Runtime.InteropServices.TypeLibFuncAttribute
System.Runtime.InteropServices.TypeLibImportClassAttribute
System.Runtime.InteropServices.TypeLibTypeAttribute
System.Runtime.InteropServices.TypeLibVarAttribute
System.Runtime.InteropServices.TypeLibVersionAttribute
System.Runtime.CompilerServices.IDispatchConstantAttribute
System.Runtime.CompilerServices.IUnknownConstantAttribute
Microsoft.PowerShell.DesiredStateConfiguration.ArgumentToConfigurationDataTransformationAttribute
System.Management.Automation.ValidateArgumentsAttribute
System.Management.Automation.ValidateEnumeratedArgumentsAttribute
System.Management.Automation.DscResourceAttribute
System.Management.Automation.DscPropertyAttribute
System.Management.Automation.DscLocalConfigurationManagerAttribute
System.Management.Automation.CmdletCommonMetadataAttribute
System.Management.Automation.CmdletAttribute
System.Management.Automation.CmdletBindingAttribute
System.Management.Automation.OutputTypeAttribute
System.Management.Automation.DynamicClassImplementationAssemblyAttribute
System.Management.Automation.AliasAttribute
System.Management.Automation.ParameterAttribute
System.Management.Automation.PSTypeNameAttribute
System.Management.Automation.SupportsWildcardsAttribute
System.Management.Automation.PSDefaultValueAttribute
System.Management.Automation.HiddenAttribute
System.Management.Automation.ValidateLengthAttribute
System.Management.Automation.ValidateRangeAttribute
System.Management.Automation.ValidatePatternAttribute
System.Management.Automation.ValidateScriptAttribute
System.Management.Automation.ValidateCountAttribute
System.Management.Automation.ValidateSetAttribute
System.Management.Automation.ValidateTrustedDataAttribute
System.Management.Automation.AllowNullAttribute
System.Management.Automation.AllowEmptyStringAttribute
System.Management.Automation.AllowEmptyCollectionAttribute
System.Management.Automation.ValidateDriveAttribute
System.Management.Automation.ValidateUserDriveAttribute
System.Management.Automation.NullValidationAttributeBase
System.Management.Automation.ValidateNotNullAttribute
System.Management.Automation.ValidateNotNullOrEmptyAttribute
System.Management.Automation.ArgumentTransformationAttribute
System.Management.Automation.ArgumentCompleterAttribute
System.Management.Automation.ArgumentCompletionsAttribute
System.Management.Automation.ExperimentalAttribute
System.Management.Automation.CredentialAttribute
System.Management.Automation.Provider.CmdletProviderAttribute
System.Management.Automation.Internal.CmdletMetadataAttribute
System.Management.Automation.Internal.ParsingBaseAttribute
System.Runtime.CompilerServices.DynamicAttribute
System.Xml.Serialization.SoapAttributeAttribute
System.Xml.Serialization.SoapElementAttribute
System.Xml.Serialization.SoapEnumAttribute
System.Xml.Serialization.SoapIgnoreAttribute
System.Xml.Serialization.SoapIncludeAttribute
System.Xml.Serialization.SoapTypeAttribute
System.Xml.Serialization.XmlAnyAttributeAttribute
System.Xml.Serialization.XmlAnyElementAttribute
System.Xml.Serialization.XmlArrayAttribute
System.Xml.Serialization.XmlArrayItemAttribute
System.Xml.Serialization.XmlAttributeAttribute
System.Xml.Serialization.XmlChoiceIdentifierAttribute
System.Xml.Serialization.XmlElementAttribute
System.Xml.Serialization.XmlEnumAttribute
System.Xml.Serialization.XmlIgnoreAttribute
System.Xml.Serialization.XmlIncludeAttribute
System.Xml.Serialization.XmlNamespaceDeclarationsAttribute
System.Xml.Serialization.XmlRootAttribute
System.Xml.Serialization.XmlSchemaProviderAttribute
System.Xml.Serialization.XmlSerializerAssemblyAttribute
System.Xml.Serialization.XmlSerializerVersionAttribute
System.Xml.Serialization.XmlTextAttribute
System.Xml.Serialization.XmlTypeAttribute
Newtonsoft.Json.JsonArrayAttribute
Newtonsoft.Json.JsonConstructorAttribute
Newtonsoft.Json.JsonContainerAttribute
Newtonsoft.Json.JsonConverterAttribute
Newtonsoft.Json.JsonDictionaryAttribute
Newtonsoft.Json.JsonExtensionDataAttribute
Newtonsoft.Json.JsonIgnoreAttribute
Newtonsoft.Json.JsonObjectAttribute
Newtonsoft.Json.JsonPropertyAttribute
Newtonsoft.Json.JsonRequiredAttribute
Newtonsoft.Json.Serialization.OnErrorAttribute
System.Timers.TimersDescriptionAttribute
System.ComponentModel.AttributeProviderAttribute
System.ComponentModel.DefaultEventAttribute
System.ComponentModel.DefaultPropertyAttribute
System.ComponentModel.ExtenderProvidedPropertyAttribute
System.ComponentModel.ProvidePropertyAttribute
System.ComponentModel.AmbientValueAttribute
System.ComponentModel.BindableAttribute
System.ComponentModel.ComplexBindingPropertiesAttribute
System.ComponentModel.InheritanceAttribute
System.ComponentModel.DataObjectAttribute
System.ComponentModel.DataObjectFieldAttribute
System.ComponentModel.DataObjectMethodAttribute
System.ComponentModel.DefaultBindingPropertyAttribute
System.ComponentModel.DesignerAttribute
System.ComponentModel.DesignTimeVisibleAttribute
System.ComponentModel.EditorAttribute
System.ComponentModel.InstallerTypeAttribute
System.ComponentModel.LicenseProviderAttribute
System.ComponentModel.ListBindableAttribute
System.ComponentModel.LookupBindingPropertiesAttribute
System.ComponentModel.PasswordPropertyTextAttribute
System.ComponentModel.PropertyTabAttribute
System.ComponentModel.RecommendedAsConfigurableAttribute
System.ComponentModel.RunInstallerAttribute
System.ComponentModel.SettingsBindableAttribute
System.ComponentModel.ToolboxItemAttribute
System.ComponentModel.ToolboxItemFilterAttribute
System.ComponentModel.Design.HelpKeywordAttribute
System.ComponentModel.Design.Serialization.DefaultSerializationProviderAttribute
System.ComponentModel.Design.Serialization.DesignerSerializerAttribute
System.ComponentModel.Design.Serialization.RootDesignerSerializerAttribute
System.Windows.Markup.ValueSerializerAttribute
System.ComponentModel.TypeConverterAttribute
System.ComponentModel.TypeDescriptionProviderAttribute
System.Diagnostics.MonitoringDescriptionAttribute
System.ComponentModel.BrowsableAttribute
System.ComponentModel.CategoryAttribute
System.ComponentModel.DescriptionAttribute
System.ComponentModel.DesignerCategoryAttribute
System.ComponentModel.DesignerSerializationVisibilityAttribute
System.ComponentModel.DesignOnlyAttribute
System.ComponentModel.DisplayNameAttribute
System.ComponentModel.ImmutableObjectAttribute
System.ComponentModel.InitializationEventAttribute
System.ComponentModel.LocalizableAttribute
System.ComponentModel.MergablePropertyAttribute
System.ComponentModel.NotifyParentPropertyAttribute
System.ComponentModel.ParenthesizePropertyNameAttribute
System.ComponentModel.ReadOnlyAttribute
System.ComponentModel.RefreshPropertiesAttribute
System.Data.DataSysDescriptionAttribute
System.Data.Common.DbProviderSpecificTypePropertyAttribute
System.Diagnostics.SwitchAttribute
System.Diagnostics.SwitchLevelAttribute
System.Runtime.Serialization.CollectionDataContractAttribute
System.Runtime.Serialization.ContractNamespaceAttribute
System.Runtime.Serialization.DataContractAttribute
System.Runtime.Serialization.DataMemberAttribute
System.Runtime.Serialization.EnumMemberAttribute
System.Runtime.Serialization.IgnoreDataMemberAttribute
System.Runtime.Serialization.KnownTypeAttribute
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
System.CodeDom.Compiler.GeneratedCodeAttribute
Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzerAttribute
Attributes Loaded on PowerShell Core:
System.AttributeUsageAttribute
System.CLSCompliantAttribute
System.FlagsAttribute
System.NonSerializedAttribute
System.ObsoleteAttribute
System.ParamArrayAttribute
System.SerializableAttribute
System.STAThreadAttribute
System.MTAThreadAttribute
System.ThreadStaticAttribute
System.ComponentModel.DefaultValueAttribute
System.ComponentModel.EditorBrowsableAttribute
System.Security.AllowPartiallyTrustedCallersAttribute
System.Security.SecurityCriticalAttribute
System.Security.SecurityRulesAttribute
System.Security.SecuritySafeCriticalAttribute
System.Security.SecurityTransparentAttribute
System.Security.SecurityTreatAsSafeAttribute
System.Security.SuppressUnmanagedCodeSecurityAttribute
System.Security.UnverifiableCodeAttribute
System.Runtime.Serialization.OnDeserializedAttribute
System.Runtime.Serialization.OnDeserializingAttribute
System.Runtime.Serialization.OnSerializedAttribute
System.Runtime.Serialization.OnSerializingAttribute
System.Runtime.Serialization.OptionalFieldAttribute
System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute
System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
System.Runtime.Versioning.TargetFrameworkAttribute
System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute
System.Runtime.InteropServices.BestFitMappingAttribute
System.Runtime.InteropServices.ClassInterfaceAttribute
System.Runtime.InteropServices.CoClassAttribute
System.Runtime.InteropServices.ComDefaultInterfaceAttribute
System.Runtime.InteropServices.ComEventInterfaceAttribute
System.Runtime.InteropServices.ComImportAttribute
System.Runtime.InteropServices.ComSourceInterfacesAttribute
System.Runtime.InteropServices.ComVisibleAttribute
System.Runtime.InteropServices.DefaultCharSetAttribute
System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute
System.Runtime.InteropServices.DefaultParameterValueAttribute
System.Runtime.InteropServices.DispIdAttribute
System.Runtime.InteropServices.DllImportAttribute
System.Runtime.InteropServices.FieldOffsetAttribute
System.Runtime.InteropServices.GuidAttribute
System.Runtime.InteropServices.InAttribute
System.Runtime.InteropServices.InterfaceTypeAttribute
System.Runtime.InteropServices.LCIDConversionAttribute
System.Runtime.InteropServices.MarshalAsAttribute
System.Runtime.InteropServices.NativeCallableAttribute
System.Runtime.InteropServices.OptionalAttribute
System.Runtime.InteropServices.OutAttribute
System.Runtime.InteropServices.PreserveSigAttribute
System.Runtime.InteropServices.ProgIdAttribute
System.Runtime.InteropServices.StructLayoutAttribute
System.Runtime.InteropServices.TypeIdentifierAttribute
System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute
System.Runtime.CompilerServices.AccessedThroughPropertyAttribute
System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute
System.Runtime.CompilerServices.AsyncMethodBuilderAttribute
System.Runtime.CompilerServices.AsyncStateMachineAttribute
System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
System.Runtime.CompilerServices.CallerFilePathAttribute
System.Runtime.CompilerServices.CallerLineNumberAttribute
System.Runtime.CompilerServices.CallerMemberNameAttribute
System.Runtime.CompilerServices.CompilationRelaxationsAttribute
System.Runtime.CompilerServices.CompilerGeneratedAttribute
System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
System.Runtime.CompilerServices.CustomConstantAttribute
System.Runtime.CompilerServices.DateTimeConstantAttribute
System.Runtime.CompilerServices.DecimalConstantAttribute
System.Runtime.CompilerServices.DefaultDependencyAttribute
System.Runtime.CompilerServices.DependencyAttribute
System.Runtime.CompilerServices.DisablePrivateReflectionAttribute
System.Runtime.CompilerServices.DiscardableAttribute
System.Runtime.CompilerServices.ExtensionAttribute
System.Runtime.CompilerServices.FixedAddressValueTypeAttribute
System.Runtime.CompilerServices.FixedBufferAttribute
System.Runtime.CompilerServices.IndexerNameAttribute
System.Runtime.CompilerServices.InternalsVisibleToAttribute
System.Runtime.CompilerServices.IsByRefLikeAttribute
System.Runtime.CompilerServices.IteratorStateMachineAttribute
System.Runtime.CompilerServices.MethodImplAttribute
System.Runtime.CompilerServices.IsReadOnlyAttribute
System.Runtime.CompilerServices.ReferenceAssemblyAttribute
System.Runtime.CompilerServices.RuntimeCompatibilityAttribute
System.Runtime.CompilerServices.SpecialNameAttribute
System.Runtime.CompilerServices.StateMachineAttribute
System.Runtime.CompilerServices.StringFreezingAttribute
System.Runtime.CompilerServices.SuppressIldasmAttribute
System.Runtime.CompilerServices.TupleElementNamesAttribute
System.Runtime.CompilerServices.TypeForwardedFromAttribute
System.Runtime.CompilerServices.TypeForwardedToAttribute
System.Runtime.CompilerServices.UnsafeValueTypeAttribute
System.Resources.NeutralResourcesLanguageAttribute
System.Resources.SatelliteContractVersionAttribute
System.Reflection.AssemblyAlgorithmIdAttribute
System.Reflection.AssemblyCompanyAttribute
System.Reflection.AssemblyConfigurationAttribute
System.Reflection.AssemblyCopyrightAttribute
System.Reflection.AssemblyCultureAttribute
System.Reflection.AssemblyDefaultAliasAttribute
System.Reflection.AssemblyDelaySignAttribute
System.Reflection.AssemblyDescriptionAttribute
System.Reflection.AssemblyFileVersionAttribute
System.Reflection.AssemblyFlagsAttribute
System.Reflection.AssemblyInformationalVersionAttribute
System.Reflection.AssemblyKeyFileAttribute
System.Reflection.AssemblyKeyNameAttribute
System.Reflection.AssemblyMetadataAttribute
System.Reflection.AssemblyProductAttribute
System.Reflection.AssemblySignatureKeyAttribute
System.Reflection.AssemblyTitleAttribute
System.Reflection.AssemblyTrademarkAttribute
System.Reflection.AssemblyVersionAttribute
System.Reflection.DefaultMemberAttribute
System.Reflection.ObfuscateAssemblyAttribute
System.Reflection.ObfuscationAttribute
System.Diagnostics.ConditionalAttribute
System.Diagnostics.DebuggableAttribute
System.Diagnostics.DebuggerBrowsableAttribute
System.Diagnostics.DebuggerDisplayAttribute
System.Diagnostics.DebuggerHiddenAttribute
System.Diagnostics.DebuggerNonUserCodeAttribute
System.Diagnostics.DebuggerStepThroughAttribute
System.Diagnostics.DebuggerStepperBoundaryAttribute
System.Diagnostics.DebuggerTypeProxyAttribute
System.Diagnostics.DebuggerVisualizerAttribute
System.Diagnostics.Contracts.PureAttribute
System.Diagnostics.Contracts.ContractClassAttribute
System.Diagnostics.Contracts.ContractClassForAttribute
System.Diagnostics.Contracts.ContractInvariantMethodAttribute
System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute
System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute
System.Diagnostics.Contracts.ContractVerificationAttribute
System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute
System.Diagnostics.Contracts.ContractArgumentValidatorAttribute
System.Diagnostics.Contracts.ContractAbbreviatorAttribute
System.Diagnostics.Contracts.ContractOptionAttribute
System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
System.Diagnostics.CodeAnalysis.AllowNullAttribute
System.Diagnostics.CodeAnalysis.DisallowNullAttribute
System.Diagnostics.CodeAnalysis.MaybeNullAttribute
System.Diagnostics.CodeAnalysis.NotNullAttribute
System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute
System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
System.Diagnostics.Tracing.EventSourceAttribute
System.Diagnostics.Tracing.EventAttribute
System.Diagnostics.Tracing.NonEventAttribute
System.Diagnostics.Tracing.EventDataAttribute
System.Diagnostics.Tracing.EventFieldAttribute
System.Diagnostics.Tracing.EventIgnoreAttribute
System.Runtime.AssemblyTargetedPatchBandAttribute
System.Runtime.TargetedPatchingOptOutAttribute
System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute
System.Runtime.CompilerServices.EnumeratorCancellationAttribute
System.ContextStaticAttribute
System.LoaderOptimizationAttribute
System.Security.Permissions.CodeAccessSecurityAttribute
System.Security.Permissions.SecurityAttribute
System.Security.Permissions.SecurityPermissionAttribute
System.Runtime.Versioning.ComponentGuaranteesAttribute
System.Runtime.Versioning.ResourceConsumptionAttribute
System.Runtime.Versioning.ResourceExposureAttribute
System.Runtime.InteropServices.AutomationProxyAttribute
System.Runtime.InteropServices.ComAliasNameAttribute
System.Runtime.InteropServices.ComCompatibleVersionAttribute
System.Runtime.InteropServices.ComConversionLossAttribute
System.Runtime.InteropServices.ComRegisterFunctionAttribute
System.Runtime.InteropServices.ComUnregisterFunctionAttribute
System.Runtime.InteropServices.IDispatchImplAttribute
System.Runtime.InteropServices.ImportedFromTypeLibAttribute
System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute
System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute
System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute
System.Runtime.InteropServices.TypeLibFuncAttribute
System.Runtime.InteropServices.TypeLibImportClassAttribute
System.Runtime.InteropServices.TypeLibTypeAttribute
System.Runtime.InteropServices.TypeLibVarAttribute
System.Runtime.InteropServices.TypeLibVersionAttribute
System.Runtime.CompilerServices.IDispatchConstantAttribute
System.Runtime.CompilerServices.IUnknownConstantAttribute
Microsoft.PowerShell.DesiredStateConfiguration.ArgumentToConfigurationDataTransformationAttribute
System.Management.Automation.ValidateArgumentsAttribute
System.Management.Automation.ValidateEnumeratedArgumentsAttribute
System.Management.Automation.DscResourceAttribute
System.Management.Automation.DscPropertyAttribute
System.Management.Automation.DscLocalConfigurationManagerAttribute
System.Management.Automation.CmdletCommonMetadataAttribute
System.Management.Automation.CmdletAttribute
System.Management.Automation.CmdletBindingAttribute
System.Management.Automation.OutputTypeAttribute
System.Management.Automation.DynamicClassImplementationAssemblyAttribute
System.Management.Automation.AliasAttribute
System.Management.Automation.ParameterAttribute
System.Management.Automation.PSTypeNameAttribute
System.Management.Automation.SupportsWildcardsAttribute
System.Management.Automation.PSDefaultValueAttribute
System.Management.Automation.HiddenAttribute
System.Management.Automation.ValidateLengthAttribute
System.Management.Automation.ValidateRangeAttribute
System.Management.Automation.ValidatePatternAttribute
System.Management.Automation.ValidateScriptAttribute
System.Management.Automation.ValidateCountAttribute
System.Management.Automation.ValidateSetAttribute
System.Management.Automation.ValidateTrustedDataAttribute
System.Management.Automation.AllowNullAttribute
System.Management.Automation.AllowEmptyStringAttribute
System.Management.Automation.AllowEmptyCollectionAttribute
System.Management.Automation.ValidateDriveAttribute
System.Management.Automation.ValidateUserDriveAttribute
System.Management.Automation.NullValidationAttributeBase
System.Management.Automation.ValidateNotNullAttribute
System.Management.Automation.ValidateNotNullOrEmptyAttribute
System.Management.Automation.ArgumentTransformationAttribute
System.Management.Automation.ArgumentCompleterAttribute
System.Management.Automation.ArgumentCompletionsAttribute
System.Management.Automation.ExperimentalAttribute
System.Management.Automation.CredentialAttribute
System.Management.Automation.Provider.CmdletProviderAttribute
System.Management.Automation.Internal.CmdletMetadataAttribute
System.Management.Automation.Internal.ParsingBaseAttribute
System.Runtime.CompilerServices.DynamicAttribute
System.Xml.Serialization.SoapAttributeAttribute
System.Xml.Serialization.SoapElementAttribute
System.Xml.Serialization.SoapEnumAttribute
System.Xml.Serialization.SoapIgnoreAttribute
System.Xml.Serialization.SoapIncludeAttribute
System.Xml.Serialization.SoapTypeAttribute
System.Xml.Serialization.XmlAnyAttributeAttribute
System.Xml.Serialization.XmlAnyElementAttribute
System.Xml.Serialization.XmlArrayAttribute
System.Xml.Serialization.XmlArrayItemAttribute
System.Xml.Serialization.XmlAttributeAttribute
System.Xml.Serialization.XmlChoiceIdentifierAttribute
System.Xml.Serialization.XmlElementAttribute
System.Xml.Serialization.XmlEnumAttribute
System.Xml.Serialization.XmlIgnoreAttribute
System.Xml.Serialization.XmlIncludeAttribute
System.Xml.Serialization.XmlNamespaceDeclarationsAttribute
System.Xml.Serialization.XmlRootAttribute
System.Xml.Serialization.XmlSchemaProviderAttribute
System.Xml.Serialization.XmlSerializerAssemblyAttribute
System.Xml.Serialization.XmlSerializerVersionAttribute
System.Xml.Serialization.XmlTextAttribute
System.Xml.Serialization.XmlTypeAttribute
Newtonsoft.Json.JsonArrayAttribute
Newtonsoft.Json.JsonConstructorAttribute
Newtonsoft.Json.JsonContainerAttribute
Newtonsoft.Json.JsonConverterAttribute
Newtonsoft.Json.JsonDictionaryAttribute
Newtonsoft.Json.JsonExtensionDataAttribute
Newtonsoft.Json.JsonIgnoreAttribute
Newtonsoft.Json.JsonObjectAttribute
Newtonsoft.Json.JsonPropertyAttribute
Newtonsoft.Json.JsonRequiredAttribute
Newtonsoft.Json.Serialization.OnErrorAttribute
System.Timers.TimersDescriptionAttribute
System.ComponentModel.AttributeProviderAttribute
System.ComponentModel.DefaultEventAttribute
System.ComponentModel.DefaultPropertyAttribute
System.ComponentModel.ExtenderProvidedPropertyAttribute
System.ComponentModel.ProvidePropertyAttribute
System.ComponentModel.AmbientValueAttribute
System.ComponentModel.BindableAttribute
System.ComponentModel.ComplexBindingPropertiesAttribute
System.ComponentModel.InheritanceAttribute
System.ComponentModel.DataObjectAttribute
System.ComponentModel.DataObjectFieldAttribute
System.ComponentModel.DataObjectMethodAttribute
System.ComponentModel.DefaultBindingPropertyAttribute
System.ComponentModel.DesignerAttribute
System.ComponentModel.DesignTimeVisibleAttribute
System.ComponentModel.EditorAttribute
System.ComponentModel.InstallerTypeAttribute
System.ComponentModel.LicenseProviderAttribute
System.ComponentModel.ListBindableAttribute
System.ComponentModel.LookupBindingPropertiesAttribute
System.ComponentModel.PasswordPropertyTextAttribute
System.ComponentModel.PropertyTabAttribute
System.ComponentModel.RecommendedAsConfigurableAttribute
System.ComponentModel.RunInstallerAttribute
System.ComponentModel.SettingsBindableAttribute
System.ComponentModel.ToolboxItemAttribute
System.ComponentModel.ToolboxItemFilterAttribute
System.ComponentModel.Design.HelpKeywordAttribute
System.ComponentModel.Design.Serialization.DefaultSerializationProviderAttribute
System.ComponentModel.Design.Serialization.DesignerSerializerAttribute
System.ComponentModel.Design.Serialization.RootDesignerSerializerAttribute
System.Windows.Markup.ValueSerializerAttribute
System.ComponentModel.TypeConverterAttribute
System.ComponentModel.TypeDescriptionProviderAttribute
System.Diagnostics.MonitoringDescriptionAttribute
System.ComponentModel.BrowsableAttribute
System.ComponentModel.CategoryAttribute
System.ComponentModel.DescriptionAttribute
System.ComponentModel.DesignerCategoryAttribute
System.ComponentModel.DesignerSerializationVisibilityAttribute
System.ComponentModel.DesignOnlyAttribute
System.ComponentModel.DisplayNameAttribute
System.ComponentModel.ImmutableObjectAttribute
System.ComponentModel.InitializationEventAttribute
System.ComponentModel.LocalizableAttribute
System.ComponentModel.MergablePropertyAttribute
System.ComponentModel.NotifyParentPropertyAttribute
System.ComponentModel.ParenthesizePropertyNameAttribute
System.ComponentModel.ReadOnlyAttribute
System.ComponentModel.RefreshPropertiesAttribute
System.Data.DataSysDescriptionAttribute
System.Data.Common.DbProviderSpecificTypePropertyAttribute
System.Diagnostics.SwitchAttribute
System.Diagnostics.SwitchLevelAttribute
System.Runtime.Serialization.CollectionDataContractAttribute
System.Runtime.Serialization.ContractNamespaceAttribute
System.Runtime.Serialization.DataContractAttribute
System.Runtime.Serialization.DataMemberAttribute
System.Runtime.Serialization.EnumMemberAttribute
System.Runtime.Serialization.IgnoreDataMemberAttribute
System.Runtime.Serialization.KnownTypeAttribute
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
System.CodeDom.Compiler.GeneratedCodeAttribute
Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzerAttribute
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment