writer library

A basic WinMD writer based on the ECMA-335 standard.

For usage, refer to the MetadataWriter class.

Classes

ArrayReferenceType
Represents a reference to an array type.
ArrayType
Represents an array type.
AssemblyIndex
Represents a row index into the Assembly table.
AssemblyOSIndex
Represents a row index into the AssemblyOS table.
AssemblyProcessorIndex
Represents a row index into the AssemblyProcessor table.
AssemblyRefIndex
Represents a row index into the AssemblyRef table.
AssemblyRefOSIndex
Represents a row index into the AssemblyRefOS table.
AssemblyRefProcessorIndex
Represents a row index into the AssemblyRefProcessor table.
AttributeArg
Represents a single argument in a custom attribute instantiation.
AttributeEnumType
Represents an enum type in custom attributes.
AttributeEnumValue
Represents an enum value in custom attributes.
BoolType
Represents a boolean type.
BoolValue
Represents a boolean value.
CharType
Represents a character type.
CharValue
Represents a character value.
ClassLayoutIndex
Represents a row index into the ClassLayout table.
CodedIndex
Base class for all coded indices used in metadata tables.
ConstantIndex
Represents a row index into the Constant table.
ConstPointerType
Represents a const pointer type.
ConstReferenceType
Represents a const (readonly) reference type to another type.
CustomAttributeIndex
Represents a row index into the CustomAttribute table.
CustomAttributeType
Represents a coded index into either a MethodDef or a MemberRef.
CustomAttributeTypeMemberRef
A CustomAttributeType representing a MemberRef.
CustomAttributeTypeMethodDef
A CustomAttributeType representing a MethodDef.
DeclSecurityIndex
Represents a row index into the DeclSecurity table.
EventIndex
Represents a row index into the Event table.
EventMapIndex
Represents a row index into the EventMap table.
ExportedTypeIndex
Represents a row index into the ExportedType table.
FieldIndex
Represents a row index into the Field table.
FieldLayoutIndex
Represents a row index into the FieldLayout table.
FieldMarshalIndex
Represents a row index into the FieldMarshal table.
FieldRVAIndex
Represents a row index into the FieldRVA table.
FileIndex
Represents a row index into the File table.
FixedArg
Represents a fixed (positional) argument passed to a custom attribute constructor.
FixedArrayType
Represents a fixed-size array type.
Float32Type
Represents a 4-byte floating point type.
Float32Value
Represents a 4-byte floating point value.
Float64Type
Represents an 8-byte floating point type.
Float64Value
Represents a platform-specific signed integer value.
GenericParamConstraintIndex
Represents a row index into the GenericParamConstraint table.
GenericParameterType
Represents a generic parameter type.
GenericParamIndex
Represents a row index into the GenericParam table.
Guid
Represents a globally unique identifier (GUID), a 128-bit value used to uniquely identify entities such as COM interfaces, class objects, and entry-point vectors (EPVs).
HasConstant
Represents a coded index for entities that can have constant values.
HasConstantField
A HasConstant representing a Field.
HasConstantParam
A HasConstant representing a Param.
HasConstantProperty
A HasConstant representing a Property.
HasCustomAttribute
Represents a coded index for entities that can have custom attributes.
HasCustomAttributeAssembly
A HasCustomAttribute representing a Assembly.
HasCustomAttributeAssemblyRef
A HasCustomAttribute representing an AssemblyRef.
HasCustomAttributeEvent
A HasCustomAttribute representing an Event.
HasCustomAttributeExportedType
A HasCustomAttribute representing an ExportedType.
HasCustomAttributeField
A HasCustomAttribute representing a Field.
HasCustomAttributeFile
A HasCustomAttribute representing a File.
HasCustomAttributeGenericParam
A HasCustomAttribute representing a GenericParam.
HasCustomAttributeGenericParamConstraint
A HasCustomAttribute representing a GenericParamConstraint.
HasCustomAttributeInterfaceImpl
A HasCustomAttribute representing an InterfaceImpl.
HasCustomAttributeManifestResource
A HasCustomAttribute representing a ManifestResource.
HasCustomAttributeMemberRef
A HasCustomAttribute representing a MemberRef.
HasCustomAttributeMethodDef
A HasCustomAttribute representing a MethodDef.
HasCustomAttributeMethodSpec
A HasCustomAttribute representing a MethodSpec.
HasCustomAttributeModule
A HasCustomAttribute representing a Module.
HasCustomAttributeModuleRef
A HasCustomAttribute representing a ModuleRef.
HasCustomAttributeParam
A HasCustomAttribute representing a Param.
HasCustomAttributeProperty
A HasCustomAttribute representing a Property.
HasCustomAttributeStandaloneSig
A HasCustomAttribute representing a StandAloneSig.
HasCustomAttributeTypeDef
A HasCustomAttribute representing a TypeDef.
HasCustomAttributeTypeRef
A HasCustomAttribute representing a TypeRef.
HasCustomAttributeTypeSpec
A HasCustomAttribute representing a TypeSpec.
HasDeclSecurity
Represents a coded index for entities that can have declarative security attributes.
HasDeclSecurityAssembly
A HasDeclSecurity representing an Assembly.
HasDeclSecurityMethodDef
A HasDeclSecurity representing a MethodDef.
HasDeclSecurityTypeDef
A HasDeclSecurity representing a TypeDef.
HasFieldMarshal
Represents a coded index for a Field or a Param.
HasFieldMarshalField
A HasFieldMarshal representing a Field.
HasFieldMarshalParam
A HasFieldMarshal representing a Param.
HasSemantics
Represents a coded index for an Event or a Property.
HasSemanticsEvent
A HasSemantics representing an Event.
HasSemanticsProperty
A HasSemantics representing a Property.
Implementation
Represents a coded index for a File, AssemblyRef, or ExportedType.
ImplementationAssemblyRef
A Implementation representing an AssemblyRef.
ImplementationExportedType
A Implementation representing an ExportedType.
ImplementationFile
A Implementation representing a File.
ImplMapIndex
Represents a row index into the ImplMap table.
Int16Type
Represents a signed 2-byte integer type.
Int16Value
Represents a signed 2-byte integer value.
Int32Type
Represents a signed 4-byte integer type.
Int32Value
Represents a signed 4-byte integer value.
Int64Type
Represents a signed 8-byte integer type.
Int64Value
Represents a signed 8-byte integer value.
Int8Type
Represents a signed 1-byte integer type.
Int8Value
Represents a signed 1-byte integer value.
InterfaceImplIndex
Represents a row index into the InterfaceImpl table.
IntPtrType
Represents a platform-specific signed integer type.
ManifestResourceIndex
Represents a row index into the ManifestResource table.
MemberForwarded
Represents a coded index for members that can be forwarded.
MemberForwardedField
A MemberForwarded representing a Field.
MemberForwardedMethodDef
A MemberForwarded representing a MethodDef.
MemberRefIndex
Represents a row index into the MemberRef table.
MemberRefParent
Represents a coded index for a TypeDef, TypeRef, ModuleRef, MethodDef, or TypeSpec.
MemberRefParentMethodDef
A MemberRefParent representing a MethodDef.
MemberRefParentModuleRef
A MemberRefParent representing a ModuleRef.
MemberRefParentTypeDef
A MemberRefParent representing a TypeDef.
MemberRefParentTypeRef
A MemberRefParent representing a TypeRef.
MemberRefParentTypeSpec
A MemberRefParent representing a TypeSpec.
MetadataType
Represents a data type of in the ECMA-335 metadata model.
MetadataValue
Represents a typed constant value in the ECMA-335 metadata model.
MetadataWriter
Provides functionality to write a valid .winmd or ECMA-335 metadata file, including metadata tables, heaps, and system-level assembly references.
MethodDefIndex
Represents a row index into the MethodDef table.
MethodDefOrRef
Represents a coded index for a MethodDef or MemberRef.
MethodDefOrRefMemberRef
A MethodDefOrRef representing a MemberRef.
MethodDefOrRefMethodDef
A MethodDefOrRef representing a MethodDef.
MethodImplIndex
Represents a row index into the MethodImpl table.
MethodSemanticsIndex
Represents a row index into the MethodSemantics table.
MethodSignature
Represents the signature of a method within metadata.
MethodSpecIndex
Represents a row index into the MethodSpec table.
ModuleIndex
Represents a row index into the Module table.
ModuleRefIndex
Represents a row index into the ModuleRef table.
MutablePointerType
Represents a mutable (non-const) pointer type.
NamedArg
Represents a named argument in a custom attribute, targeting a field or property.
NamedClassType
Represents a user-defined class type (i.e., a reference type).
NamedType
Represents a user-defined named type within metadata, such as a class, struct, or enum.
NamedValueType
Represents a user-defined value type (i.e., a struct or enum).
NestedClassIndex
Represents a row index into the NestedClass table.
NullReferenceType
Represents a null reference type in constants.
ObjectType
Represents a System.Object type.
ParamIndex
Represents a row index into the Param table.
PropertyIndex
Represents a row index into the Property table.
PropertyMapIndex
Represents a row index into the PropertyMap table.
ResolutionScope
Represents a coded index for a Module, ModuleRef, AssemblyRef, or TypeRef.
ResolutionScopeAssemblyRef
A ResolutionScope representing an AssemblyRef.
ResolutionScopeModule
A ResolutionScope representing a Module.
ResolutionScopeModuleRef
A ResolutionScope representing a ModuleRef.
ResolutionScopeTypeRef
A ResolutionScope representing a TypeRef.
StandAloneSigIndex
Represents a row index into the StandAloneSig table.
StringType
Represents a System.String type.
TableIndex
Represents an index into a table.
TypeDefIndex
Represents a row index into the TypeDef table.
TypeDefOrRef
Represents a coded index for a TypeDef, TypeRef, or TypeSpec.
TypeDefOrRefTypeDef
A TypeDefOrRef representing a TypeDef.
TypeDefOrRefTypeRef
A TypeDefOrRef representing a TypeRef.
TypeDefOrRefTypeSpec
A TypeDefOrRef representing a TypeSpec.
TypeOrMethodDef
Represents a coded index for a TypeDef or MethodDef.
TypeOrMethodDefMethodDef
A TypeOrMethodDef representing a MethodDef.
TypeOrMethodDefTypeDef
A TypeOrMethodDef representing a TypeDef.
TypeRefIndex
Represents a row index into the TypeRef table.
TypeSpecIndex
Represents a row index into the TypeSpec table.
Uint16Type
Represents an unsigned 2-byte integer type.
Uint16Value
Represents an unsigned 2-byte integer value.
Uint32Type
Represents an unsigned 4-byte integer type.
Uint32Value
Represents an unsigned 4-byte integer value.
Uint64Type
Represents an unsigned 8-byte integer type.
Uint64Value
Represents an unsigned 8-byte integer value.
Uint8Type
Represents an unsigned 1-byte integer type.
Uint8Value
Represents an unsigned 1-byte integer value.
UintPtrType
Represents a platform-specific unsigned integer type.
Utf16StringValue
Represents a UTF-16 string value.
Utf8StringValue
Represents a UTF-8 string value.
VoidType
Represents a void type.

Enums

CallConv
Represents the platform calling convention.
CharSet
Represents the encoding for marshalling P/Invoke function strings.
CodeType
Represents the code type of contained code.
FieldAccess
Represents the field accessibility information.
ManifestResourceVisibility
Represents the visibility of a manifest resource.
MemberAccess
Represents the member accessibility information.
SecurityAction
Specifies the security actions that can be performed using declarative security.
SpecialConstraint
Represents the special constraint on a generic parameter.
StringFormat
Defines the interpretation rules for string types.
TypeLayout
Describes the layout of the fields within the type.
TypeSemantics
Represents the semantics of a type.
TypeVisibility
Represents the visibility of a type to other types.
Variance
Represents the variance for a generic parameter.
VTableLayout
Represents the virtual table layout.

Extension Types

AssemblyFlags
Provides information about an Assembly reference.
AssemblyHashAlgorithm
Provides information about an Assembly hash algorithm.
EventAttributes
Provides information about an event.
FieldAttributes
Provides information about a field.
FileAttributes
Provides information about a file.
GenericParamAttributes
Provides information about a generic type parameter of a generic type or method.
ManifestResourceAttributes
Provides information about a manifest resource.
MethodAttributes
Provides information about a method.
MethodImplAttributes
Provides information about a method implementation.
MethodSemanticsAttributes
Provides information about a method's semantics.
ParamAttributes
Provides information about a parameter.
PInvokeAttributes
Provides information about Platform Invocation (P/Invoke) methods.
PropertyAttributes
Provides information about a property.
TypeAttributes
Provides information about a type.

Extensions

AttributeArgExtension on AttributeArg
Extension methods to simplify extraction of primitive values from AttributeArgs.
GuidExtension on Guid
Extension on Guid to support conversion to binary format.