Ejemplo n.º 1
0
        public MemberMap(IEnumerable<MethodInfo> methods, IEnumerable<EventInfo> events, IEnumerable<PropertyInfo> propertys, IEnumerable<System.Tuple<System.Type, System.Func<Regulus.Remote.IProvider>>> interfaces)
        {
            _Providers = new Dictionary<Type, Func<IProvider>>();
            _Methods = new BilateralMap<int, MethodInfo>(this, this);
            _Events = new BilateralMap<int, EventInfo>(this, this);
            _Propertys = new BilateralMap<int, PropertyInfo>(this, this);
            _Interfaces = new BilateralMap<int, Type>(this, this);

            int id = 0;
            foreach (MethodInfo method in methods)
            {
                _Methods.Add(++id, method);
            }

            id = 0;
            foreach (EventInfo eventInfo in events)
            {
                _Events.Add(++id, eventInfo);
            }

            id = 0;
            foreach (PropertyInfo propertyInfo in propertys)
            {
                _Propertys.Add(++id, propertyInfo);
            }

            id = 0;
            foreach (Tuple<Type, Func<IProvider>> @interface in interfaces)
            {
                _Interfaces.Add(++id, @interface.Item1);
                _Providers.Add(@interface.Item1, @interface.Item2);
            }
        }
Ejemplo n.º 2
0
        public MemberMap(IEnumerable <MethodInfo> methods, IEnumerable <EventInfo> events, IEnumerable <PropertyInfo> properties, IEnumerable <Type> interfaces)
        {
            _Methods    = new BilateralMap <int, MethodInfo>(this, this);
            _Events     = new BilateralMap <int, EventInfo>(this, this);
            _Properties = new BilateralMap <int, PropertyInfo>(this, this);
            _Interfaces = new BilateralMap <int, Type>(this, this);

            var id = 0;

            foreach (var method in methods)
            {
                _Methods.Add(++id, method);
            }

            id = 0;
            foreach (var eventInfo in events)
            {
                _Events.Add(++id, eventInfo);
            }

            id = 0;
            foreach (var propertyInfo in properties)
            {
                _Properties.Add(++id, propertyInfo);
            }

            id = 0;
            foreach (var @interface in interfaces)
            {
                _Interfaces.Add(++id, @interface);
            }
        }