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);
        }