public static object CreateProxy(Type realType, params object[] paramters) { var proxyGenerator = new DynamicProxyGenerator(realType); Type type = proxyGenerator.CreateProxy(paramters.Select(r => r.GetType()).ToArray()); return(FastObjectCreater.CreateInstance(type, paramters)); }
private Object GetInjectItem(Type type, params object[] args) { var setting = _context.GetValue(type); if (setting != null) { Lifetime lifetime = setting.Scope; switch (lifetime) { case Lifetime.Singleton: if (ObjCache.ContainsKey(setting.Bind)) { return(ObjCache[setting.Bind]); } var instance = FastObjectCreater.CreateInstance(type, args); ObjCache.Add(setting.Bind, instance); return(instance); case Lifetime.Transient: return(FastObjectCreater.CreateInstance(type, args)); default: throw new NotSupportedException("传入的lifetime不受支持:" + lifetime); } } return(FastObjectCreater.CreateInstance(type, args)); }