public void CollectElementsToProxy(IProxyGenerationHook hook, MetaType model)
        {
            foreach (var collector in CollectElementsToProxyInternal(hook))
            {
                foreach (var method in collector.Methods)
                {
                    if (!IsInterceptable(collector, method.Method))
                    {
                        continue;
                    }

                    model.AddMethod(method);
                    methods.Add(method);
                }
                foreach (var @event in collector.Events)
                {
                    if (!IsInterceptable(collector, @event.Event))
                    {
                        continue;
                    }

                    model.AddEvent(@event);
                    events.Add(@event);
                }
                foreach (var property in collector.Properties)
                {
                    if (!IsInterceptable(collector, property.Property))
                    {
                        continue;
                    }

                    model.AddProperty(property);
                    properties.Add(property);

                    foreach (var method in collector.Methods
                             .Where(m => (property.CanRead && m.Method == property.GetMethod) || (property.CanWrite && m.Method == property.SetMethod)))
                    {
                        model.AddMethod(method);
                        methods.Add(method);
                    }
                }
            }
        }
 public void CollectElementsToProxy(IProxyGenerationHook hook, MetaType model)
 {
     foreach (var collector in CollectElementsToProxyInternal(hook))
     {
         foreach (var method in collector.Methods)
         {
             model.AddMethod(method);
             methods.Add(method);
         }
         foreach (var @event in collector.Events)
         {
             model.AddEvent(@event);
             events.Add(@event);
         }
         foreach (var property in collector.Properties)
         {
             model.AddProperty(property);
             properties.Add(property);
         }
     }
 }
Example #3
0
 public void Add(MetaProperty property)
 {
     model.AddProperty(property);
     contributor.properties.Add(property);
 }