public object[] МассивИзЭнумератора(object счетчик, object тип) { var cur = (IEnumerable)AutoWrap.ПолучитьРеальныйОбъект(счетчик); var list = new List <object>(); Type type = (Type)AutoWrap.ПолучитьРеальныйОбъект(тип); ДанныеДляТипа данныеДляТипа = ДанныеДляТипа.ПолучитьДанныеДляТипа(type); foreach (var str in cur) { if ((str == null) || !type.IsAssignableFrom(str.GetType())) { list.Add(null); continue; } var res = new AutoWrap(str, type); ДанныеДляТипа.ПрописатьПоля(res, данныеДляТипа); list.Add(res); } return(list.ToArray()); }
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())); }
public object СоздатьОберткуДляСобытий(object объект) { object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(объект); var функция = ПолучитьMethodInfoОберткиСобытий("СоздательОбертки", еальныйОбъект); object обертка = функция.Invoke(null, new[] { this, еальныйОбъект }); return(обертка); }
public object СоздатьОберткуДляСобытий77(object объект, object глобальныйКонтекст) { object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(объект); var функция = ПолучитьMethodInfoОберткиСобытий("СоздательОбертки77", еальныйОбъект); object обертка = функция.Invoke(null, new[] { глобальныйКонтекст, еальныйОбъект }); return(AutoWrap.ОбернутьОбъект(обертка)); }
public object ПолучитьТипизированныйПеречислитель(object счетчик, object тип) { var cur = (IEnumerable)AutoWrap.ПолучитьРеальныйОбъект(счетчик); Type type = (Type)AutoWrap.ПолучитьРеальныйОбъект(тип); var res = new ТипизированныйЭнумератор(cur.GetEnumerator(), type); return(new MyEnumerableClass(res)); }
public void ЗакрытьРесурс(Object oбъект) { object объект = AutoWrap.ПолучитьРеальныйОбъект(oбъект); if (объект is IDisposable d) { d.Dispose(); } }
public void ОчиститьСобытияОбъекта(Object obj) { if (obj == null) { return; } ОчисткаСсылокНаСобытия.Очистить(AutoWrap.ПолучитьРеальныйОбъект(obj)); }
public string ВСтроку(object valueOrig) { if (valueOrig == null) { return("неопределено"); } var res = AutoWrap.ПолучитьРеальныйОбъект(valueOrig); return(res.ToString()); }
public object СоздатьДелегат(object типДелегата, object методИнфо, Object oбъект, params object[] argOrig) { object объект = AutoWrap.ПолучитьРеальныйОбъект(oбъект); MethodInfo объектМетодИнфо = (MethodInfo)AutoWrap.ПолучитьРеальныйОбъект(методИнфо); Type genType = (Type)AutoWrap.ПолучитьРеальныйОбъект(типДелегата); var типы = AutoWrap.ПолучитьМассивРеальныхОбъектов(argOrig).Cast <Type>().ToArray(); Type constructed = genType.MakeGenericType(типы); var res = Delegate.CreateDelegate(constructed, объект, объектМетодИнфо); return(new AutoWrap(res)); }
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 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 ПолучитьИнтерфейс(object obj, string interfaseName) { object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(obj); Type type = еальныйОбъект.GetType().GetInterface(interfaseName, true); if (type == null) { return(null); } return(new AutoWrap(еальныйОбъект, type)); }
public Object ChangeType(string type, object valueOrig) { object value = AutoWrap.ПолучитьРеальныйОбъект(valueOrig); Type result = НайтиТип(type); if (result == null) { throw new COMException("Не найден тип " + type); } return(new AutoWrap(Convert.ChangeType(value, result, CultureInfo.InvariantCulture))); }
public bool Следующий(object перечислитель, out object current) { var enumerator = (IEnumerator)AutoWrap.ПолучитьРеальныйОбъект(перечислитель); if (enumerator.MoveNext()) { current = AutoWrap.ОбернутьОбъект(enumerator.Current); return(true); } current = null; return(false); }
public void Выполнить(object value, object данныеКЗадаче) { var Задача = AutoWrap.ПолучитьРеальныйОбъект(value); if (this.ПриОкончанииВыполненияЗадачи != null) //Событие(); { var типПараметра = Задача.GetType().GenericTypeArguments[0]; // ДляВыполненияЗадачи<dynamic>.Выполнить((dynamic)Задача, this); Type genType = typeof(ДляВыполненияЗадачи <>); Type constructed = genType.MakeGenericType(new Type[] { типПараметра }); // Now use reflection to invoke the method on constructed type // var mi = constructed.GetMethod("Выполнить"); constructed.InvokeMember("Выполнить", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.InvokeMethod, null, null, new[] { Задача, this, данныеКЗадаче }); } }
public object ОбновитьДанныеОметодахИСвойствах(object objOrig) { return(AutoWrap.ОбернутьОбъект(AutoWrap.ПолучитьРеальныйОбъект(objOrig))); }
public object ПолучитьМетоды(object тип) { object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(тип); return(new AutoWrap(((Type)еальныйОбъект).GetMethods())); }
public Object ToInt(object valueOrig) { object value = AutoWrap.ПолучитьРеальныйОбъект(valueOrig); return(new AutoWrap(Convert.ChangeType(value, typeof(Int32), CultureInfo.InvariantCulture))); }
public object ПолучитьПеречислитель(object счетчик) { var cur = (IEnumerable)AutoWrap.ПолучитьРеальныйОбъект(счетчик); return(new AutoWrap(cur.GetEnumerator(), typeof(IEnumerator))); }
public object ПолучитьРеальныйОбъект(object valueOrig) { return(AutoWrap.ПолучитьРеальныйОбъект(valueOrig)); }