/// <summary>
 ///     Get a dynamic proxy type generated to be used as lazy proxy used to
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public static Type GetLazyProxyTypeFor(Type serviceType)
 {
     return(DynamicAssemblyGenerator
            .GetProxyTypeFor(serviceType)
            .TypeInfo
            );
 }
        public static T CreateLazyProxyFor <T>(Func <T> serviceFactory)
        {
            var registry = DynamicAssemblyGenerator.GetProxyTypeFor(typeof(T));

            return((T)registry.CtorInfo.Invoke(new[] { serviceFactory }));
        }