public object ВыполнитьМетод(object objOrig, string имяМетода, params object[] argsOrig) { object res; object obj = objOrig; object[] args = AutoWrap.ПолучитьМассивРеальныхОбъектов(argsOrig); if (obj is AutoWrap Объект) { obj = Объект.O; if (Объект.ЭтоТип) { res = AutoWrap.ОбернутьОбъект(Объект.T.InvokeMember(имяМетода, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.InvokeMethod, null, null, args)); AutoWrap.УстановитьИзмененияВМассиве(argsOrig, args); return(res); } } Type T = obj.GetType(); res = AutoWrap.ОбернутьОбъект(T.InvokeMember(имяМетода, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, obj, args)); AutoWrap.УстановитьИзмененияВМассиве(argsOrig, args); return(res); }