Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Reflection;
  4. using System.Reflection.Emit;
  5.  
  6. public class B
  7. {
  8. private Type _gtype;
  9. public void AssignWhatTypeWeWantToWtf(Type t)
  10. {
  11. _gtype = t;
  12. }
  13.  
  14. private Dictionary<string, Type> getWtfFields()
  15. {
  16. var t = _gtype.GetFields();
  17. var dic = new Dictionary<string, Type>();
  18. for (int i = 0; i < t.Length; i++)
  19. {
  20. dic.Add(t[i].Name+"1", t[i].FieldType);
  21. dic.Add(t[i].Name+"2", t[i].FieldType);//sorka za takie podwajanie ale juz nie wiem co ja pisze i stracilem wiare w sens tego programu
  22. }
  23.  
  24. return dic;
  25. }
  26.  
  27. private string getWtfName()
  28. {
  29. return nameof(_gtype);
  30. }
  31.  
  32. public void WtfWtfWtf()
  33. {
  34. AssemblyName wtfName = new AssemblyName("wtf");
  35. AssemblyBuilder ab =
  36. AppDomain.CurrentDomain.DefineDynamicAssembly(
  37. wtfName,
  38. AssemblyBuilderAccess.RunAndSave);
  39.  
  40. ModuleBuilder mb =
  41. ab.DefineDynamicModule(wtfName.Name, wtfName.Name + ".dll");
  42.  
  43. TypeBuilder tb = mb.DefineType(getWtfName(),
  44. TypeAttributes.Public);
  45.  
  46. foreach (var item in getWtfFields())
  47. {
  48. tb.DefineField(
  49. item.Key,
  50. item.Value,
  51. FieldAttributes.Public);
  52. }
  53.  
  54. Type t = tb.CreateType();
  55.  
  56. ab.Save(wtfName.Name + ".dll");
  57.  
  58. object wtfUFOKURWALECI = Activator.CreateInstance(t);
  59. //można se stworzyć i zastanowić się ,przyjrzeć pomyśleć jakie to kurwa brzydkie i potem ... nie wiem
  60. }
  61. }
  62.  
  63. public class A
  64. {
  65. public int a1;
  66. public string a2;
  67. }
  68. class WtfBuilder
  69. {
  70. public static void Main()
  71. {
  72. var typA = typeof(A);
  73.  
  74. var typB = new B();
  75. typB.AssignWhatTypeWeWantToWtf(typA);
  76. typB.WtfWtfWtf();
  77.  
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement