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); }
public object MethodInfo_Invoke(object методИнфо, object объект, params object[] argsOrig) { object[] args = AutoWrap.ПолучитьМассивРеальныхОбъектов(argsOrig); var mf = (MethodInfo)(((AutoWrap)методИнфо).O); return(AutoWrap.ОбернутьОбъект(mf.Invoke(ПолучитьРеальныйОбъект(объект), args))); }
public object Or(params object[] параметры1) { if (параметры1.Length == 0) { return(null); } object[] параметры = AutoWrap.ПолучитьМассивРеальныхОбъектов(параметры1); var парам = параметры[0]; var тип = парам.GetType(); long res = (long)Convert.ChangeType(парам, typeof(long)); for (int i = 1; i < параметры.Length; i++) { res |= (long)Convert.ChangeType(параметры[i], typeof(long)); } if (тип.IsEnum) { var ТипЗначений = Enum.GetUnderlyingType(тип); var number = Convert.ChangeType(res, ТипЗначений); return(AutoWrap.ОбернутьОбъект(Enum.ToObject(тип, number))); } return(AutoWrap.ОбернутьОбъект(Convert.ChangeType(res, тип))); }
public object СоздатьОбъект(object тип, params object[] argOrig) { var res = ТипДляСоздатьОбъект(тип); object[] args = AutoWrap.ПолучитьМассивРеальныхОбъектов(argOrig); return(AutoWrap.ОбернутьОбъект(System.Activator.CreateInstance(res, args))); }
public object СоздатьКлиентаWcfConfigFile(string имяФайла, object channel, string endpointConfigurationName, object endpointAddress = null, string userName = null, string password = null) { ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap { ExeConfigFilename = имяФайла }; Configuration newConfiguration = ConfigurationManager.OpenMappedExeConfiguration( fileMap, ConfigurationUserLevel.None); Type ТипКанала = ТипДляСоздатьОбъект(channel); Type type = typeof(ConfigurationChannelFactory <>); Type constructed = type.MakeGenericType(ТипКанала); dynamic factory1 = System.Activator.CreateInstance(constructed, endpointConfigurationName, newConfiguration, AutoWrap.ПолучитьРеальныйОбъект(endpointAddress) ); if (!String.IsNullOrWhiteSpace(userName)) { factory1.Credentials.UserName.UserName = userName; factory1.Credentials.UserName.Password = password; } return(AutoWrap.ОбернутьОбъект(factory1.CreateChannel())); }
// Получаем масив элементов определенного типа // Тип выводится по первому элементу с индексом 0 // Пример использования // ТипыПараметров=ъ(Врап.ТипМассив(IParentNode.ПолучитьСсылку(),String.ПолучитьСсылку())); public object ТипМассив(params object[] argOrig) { if (!(argOrig != null && argOrig.Length > 0)) { return(new object[0]); } argOrig = AutoWrap.ПолучитьМассивРеальныхОбъектов(argOrig); var Тип = argOrig[0].GetType(); var ti = Тип.GetTypeInfo(); var TypeRes = typeof(List <>).MakeGenericType(Тип); var res = System.Activator.CreateInstance(TypeRes); var mi = TypeRes.GetTypeInfo().GetMethod("Add"); var mi2 = TypeRes.GetTypeInfo().GetMethod("ToArray"); foreach (var str in argOrig) { if (mi != null && str != null && ti.IsInstanceOfType(str)) { mi.Invoke(res, new[] { str }); } } if (mi2 != null) { return(AutoWrap.ОбернутьОбъект(mi2.Invoke(res, new object[0]))); } else { return(null); } }
public void Оповестить(object задача, object данныеКЗадаче) { if (_sc != null && задача != null && данныеКЗадаче != null) { _sc.Post(d => ПриОкончанииВыполненияЗадачи(AutoWrap.ОбернутьОбъект(задача), данныеКЗадаче), null); } }
private void ВнешнееСобытиеСПараметром(object value) { if (СобытиеСПараметром != null && _sc != null && value != null) { _sc.Send(d => СобытиеСПараметром(AutoWrap.ОбернутьОбъект(value)), null); } }
public object СоздатьОберткуДляСобытий77(object объект, object глобальныйКонтекст) { object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(объект); var функция = ПолучитьMethodInfoОберткиСобытий("СоздательОбертки77", еальныйОбъект); object обертка = функция.Invoke(null, new[] { глобальныйКонтекст, еальныйОбъект }); return(AutoWrap.ОбернутьОбъект(обертка)); }
public object ВыполнитьДелегат(object делегат, params object[] argsOrig) { Delegate obj = (Delegate)ПолучитьРеальныйОбъект(делегат); object[] args = AutoWrap.ПолучитьМассивРеальныхОбъектов(argsOrig); return(AutoWrap.ОбернутьОбъект(obj.DynamicInvoke(args))); }
public object ОбернутьОбъект(object объект) { if (объект is AutoWrap) { return(объект); } return(AutoWrap.ОбернутьОбъект(объект)); }
public object[] МассивИзЭнумератора2(object счетчик) { var cur = (IEnumerable)AutoWrap.ПолучитьРеальныйОбъект(счетчик); var list = new List <object>(); foreach (var str in cur) { list.Add(AutoWrap.ОбернутьОбъект(str)); } return(list.ToArray()); }
public bool Следующий(object перечислитель, out object current) { var enumerator = (IEnumerator)AutoWrap.ПолучитьРеальныйОбъект(перечислитель); if (enumerator.MoveNext()) { current = AutoWrap.ОбернутьОбъект(enumerator.Current); return(true); } current = null; return(false); }
public Object ПолучитьSafeArrayИзЭнумератора(Object массив) { List <object> res = new List <object>(); var Enumerable = ((IEnumerable)(AutoWrap.ПолучитьРеальныйОбъект(массив))).GetEnumerator(); while (Enumerable.MoveNext()) { res.Add(AutoWrap.ОбернутьОбъект(Enumerable.Current)); } return(res.ToArray()); }
public object GetValueFromArray(object массивOrig, Object индекс) { object Массив = массивOrig; if (Массив is AutoWrap) { Массив = ((AutoWrap)Массив).O; } int ind = Convert.ToInt32(индекс); Array Масс = (Array)Массив; return(AutoWrap.ОбернутьОбъект(Масс.GetValue(ind))); }
public object ПолучитьМассивТипов() { var list = new List <object> { "System.String", AutoWrap.ОбернутьОбъект(DateTime.Now), AutoWrap.ОбернутьОбъект(true), AutoWrap.ОбернутьОбъект((Byte)45), AutoWrap.ОбернутьОбъект((Decimal)48.789), AutoWrap.ОбернутьОбъект(51.51), AutoWrap.ОбернутьОбъект((Single)11.11), AutoWrap.ОбернутьОбъект(11), AutoWrap.ОбернутьОбъект(789988778899), AutoWrap.ОбернутьОбъект((SByte)45), AutoWrap.ОбернутьОбъект((Int16)66), AutoWrap.ОбернутьОбъект((UInt32)77), AutoWrap.ОбернутьОбъект((UInt64)88888888888888), AutoWrap.ОбернутьОбъект((UInt16)102) }; return(new AutoWrap(list)); }
// Получаем массив объектов используя эффект получения массива параметров при использовании // ключевого слова params // Пример использования //МассивПараметров=ъ(Врап.Массив(doc.ПолучитьСсылку(), "a[title='The Big Bang Theory']")); public object Массив(params object[] argOrig) { argOrig = AutoWrap.ПолучитьМассивРеальныхОбъектов(argOrig); return(AutoWrap.ОбернутьОбъект(argOrig)); }
public object ОбновитьДанныеОметодахИСвойствах(object objOrig) { return(AutoWrap.ОбернутьОбъект(AutoWrap.ПолучитьРеальныйОбъект(objOrig))); }
public object CreateObject(object type) { var res = ТипДляСоздатьОбъект(type); return(AutoWrap.ОбернутьОбъект(System.Activator.CreateInstance(res))); }
public object CreateArray(object type, int length) { return(AutoWrap.ОбернутьОбъект(Array.CreateInstance(ТипДляСоздатьОбъект(type), length))); }
public object ЗагрузитьСборку(string путьКСборке) { var res = Assembly.LoadFrom(путьКСборке); return(AutoWrap.ОбернутьОбъект(res)); }