Example #1
0
        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());
        }
Example #2
0
        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()));
        }
Example #3
0
        public object СоздатьОберткуДляСобытий(object объект)
        {
            object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(объект);
            var    функция       = ПолучитьMethodInfoОберткиСобытий("СоздательОбертки", еальныйОбъект);
            object обертка       = функция.Invoke(null, new[] { this, еальныйОбъект });

            return(обертка);
        }
Example #4
0
        public object СоздатьОберткуДляСобытий77(object объект, object глобальныйКонтекст)
        {
            object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(объект);
            var    функция       = ПолучитьMethodInfoОберткиСобытий("СоздательОбертки77", еальныйОбъект);
            object обертка       = функция.Invoke(null, new[] { глобальныйКонтекст, еальныйОбъект });

            return(AutoWrap.ОбернутьОбъект(обертка));
        }
Example #5
0
        public object ПолучитьТипизированныйПеречислитель(object счетчик, object тип)
        {
            var cur = (IEnumerable)AutoWrap.ПолучитьРеальныйОбъект(счетчик);

            Type type = (Type)AutoWrap.ПолучитьРеальныйОбъект(тип);
            var  res  = new ТипизированныйЭнумератор(cur.GetEnumerator(), type);

            return(new MyEnumerableClass(res));
        }
Example #6
0
        public void ЗакрытьРесурс(Object oбъект)
        {
            object объект = AutoWrap.ПолучитьРеальныйОбъект(oбъект);

            if (объект is IDisposable d)
            {
                d.Dispose();
            }
        }
Example #7
0
        public void ОчиститьСобытияОбъекта(Object obj)
        {
            if (obj == null)
            {
                return;
            }

            ОчисткаСсылокНаСобытия.Очистить(AutoWrap.ПолучитьРеальныйОбъект(obj));
        }
Example #8
0
        public string ВСтроку(object valueOrig)
        {
            if (valueOrig == null)
            {
                return("неопределено");
            }

            var res = AutoWrap.ПолучитьРеальныйОбъект(valueOrig);

            return(res.ToString());
        }
Example #9
0
        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));
        }
Example #10
0
        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());
        }
Example #11
0
        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());
        }
Example #12
0
        public object ПолучитьИнтерфейс(object obj, string interfaseName)
        {
            object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(obj);

            Type type = еальныйОбъект.GetType().GetInterface(interfaseName, true);

            if (type == null)
            {
                return(null);
            }

            return(new AutoWrap(еальныйОбъект, type));
        }
Example #13
0
        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)));
        }
Example #14
0
        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, данныеКЗадаче });
            }
        }
Example #16
0
 public object ОбновитьДанныеОметодахИСвойствах(object objOrig)
 {
     return(AutoWrap.ОбернутьОбъект(AutoWrap.ПолучитьРеальныйОбъект(objOrig)));
 }
Example #17
0
        public object ПолучитьМетоды(object тип)
        {
            object еальныйОбъект = AutoWrap.ПолучитьРеальныйОбъект(тип);

            return(new AutoWrap(((Type)еальныйОбъект).GetMethods()));
        }
Example #18
0
        public Object ToInt(object valueOrig)
        {
            object value = AutoWrap.ПолучитьРеальныйОбъект(valueOrig);

            return(new AutoWrap(Convert.ChangeType(value, typeof(Int32), CultureInfo.InvariantCulture)));
        }
Example #19
0
        public object ПолучитьПеречислитель(object счетчик)
        {
            var cur = (IEnumerable)AutoWrap.ПолучитьРеальныйОбъект(счетчик);

            return(new AutoWrap(cur.GetEnumerator(), typeof(IEnumerator)));
        }
Example #20
0
 public object ПолучитьРеальныйОбъект(object valueOrig)
 {
     return(AutoWrap.ПолучитьРеальныйОбъект(valueOrig));
 }