Advertisement
Guest User

Untitled

a guest
Dec 5th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1. public static void Rewrite(string assemblyLocation) {
  2.             var assemblyDefinition = AssemblyDefinition.ReadAssembly(assemblyLocation);
  3.             foreach (var type in assemblyDefinition.Modules.SelectMany(m => m.Types).Where(t => t.IsPublic)) {
  4.                 UnsealType(type);
  5.             }
  6.             SaveTestingAssembly(assemblyLocation, assemblyDefinition);
  7.         }
  8.  
  9.         private static void UnsealType(TypeDefinition type) {
  10.             type.IsSealed = false;
  11.             foreach (var method in type.Methods.Where(m => m.IsPublic && !m.IsStatic && !m.IsConstructor)) {
  12.                 method.IsVirtual = true;
  13.             }
  14.             foreach (var nestedTypes in type.NestedTypes) {
  15.                 UnsealType(nestedTypes);
  16.             }
  17.         }
  18.  
  19.         private static void SaveTestingAssembly(string assemblyLocation, AssemblyDefinition assemblyDefinition) {
  20.             assemblyDefinition.Name = new AssemblyNameDefinition(assemblyDefinition.Name.Name + ".ForTesting", assemblyDefinition.Name.Version);
  21.             var newAssemblyPath = Path.Combine(Path.GetDirectoryName(assemblyLocation), Path.GetFileNameWithoutExtension(assemblyLocation) + ".ForTesting.dll");
  22.             assemblyDefinition.Write(newAssemblyPath);
  23.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement