using Mono.Cecil; // Load an assembly AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly("MyAssembly.dll"); // Get the type containing the field TypeDefinition type = assembly.MainModule.GetType("MyNamespace.MyType"); // Get a reference to the field FieldReference fieldRef = type.Fields.Single(f => f.Name == "myField"); // Resolve the field reference to a FieldDefinition FieldDefinition fieldDef = fieldRef.Resolve(); // Manipulate the field definition fieldDef.IsPublic = true; fieldDef.IsStatic = false;
using Mono.Cecil; // Load an assembly AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly("MyAssembly.dll"); // Get all types in the assembly IEnumerableThis example loads an assembly, loops through all the types in the assembly, loops through all the fields in each type, gets the type of each field, and if the type is `System.String`, sets the field's accessibility to public. The package/library for Mono.Cecil is `Mono.Cecil`.types = assembly.MainModule.Types; // Loop through each type foreach (TypeDefinition type in types) { // Loop through each field in the type foreach (FieldDefinition field in type.Fields) { // Get the type of the field TypeReference fieldType = field.FieldType; // If the field's type is System.String, change its accessibility to public if (fieldType.FullName == "System.String") { field.IsPublic = true; } } }