public static TInterface CreateInterfaceProxy <TInterface>(this ProxyGenerator proxyGenerator) =>
 (TInterface)proxyGenerator.CreateInterfaceProxy(typeof(TInterface));
 public static TClass CreateClassProxy <TClass>(this ProxyGenerator proxyGenerator) where TClass : class =>
 (TClass)proxyGenerator.CreateClassProxy(typeof(TClass));
 public static TClass CreateClassProxy <TClass, TImplement>(this ProxyGenerator proxyGenerator) where TImplement : TClass =>
 (TClass)proxyGenerator.CreateClassProxy(typeof(TClass), typeof(TImplement));
 public static TInterface CreateInterfaceProxy <TInterface, TImplement>(this ProxyGenerator proxyGenerator) where TImplement : TInterface =>
 (TInterface)proxyGenerator.CreateInterfaceProxy(typeof(TInterface), typeof(TImplement));