protected internal ObjectProxy(object target, string[] arrMethods, Decoration preAspect, Decoration postAspect) : base(typeof(MarshalByRefObject)) { _target = target; _preAspect = preAspect; _postAspect = postAspect; _arrMethods = arrMethods; }
/// <summary> /// Создание прокси-объекта /// </summary> /// <typeparam name="T">Параметр типа</typeparam> /// <param name="target">Объект назначения</param> /// <param name="arrMethods">Строковый массив методов</param> /// <param name="preAspect">Декоратор перед вызовом исходного метода</param> /// <param name="postAspect">Декоратор после вызова исходного метода</param> /// <returns></returns> public static T CreateProxy <T>(T target, string[] arrMethods, Decoration preAspect, Decoration postAspect) where T : class { var objectProxy = new ObjectProxy(target, arrMethods, preAspect, postAspect); var transparentProxy = (T)objectProxy.GetTransparentProxy(); return(transparentProxy); }