示例#1
0
            private void PrecacheReflections(Type controllerType)
            {
                var defaultConstructor = controllerType.GetConstructors().FirstOrDefault(x => x.GetParameters().Length == 0);

                if (defaultConstructor == null)
                {
                    throw new ArgumentException("StatementHandler " + controllerType.Name + " does not have a default constructor");
                }
                activator = FastFlect.GetActivator(defaultConstructor);
                delegateForScopeSetter       = controllerType.DelegateForSetPropertyValue("Scope");
                delegateForContextSetter     = controllerType.DelegateForSetPropertyValue("Context");
                delegateForAttachmentsSetter = controllerType.DelegateForSetPropertyValue("Attachments");
                delegateForTracerSetter      = controllerType.DelegateForSetPropertyValue("Tracer");
                delegateForInvokation        = definition.MethodInfo.DelegateForCallMethod();
                if (definition.TransformsScopeTo != null)
                {
                    scopeConverter        = StaticAnalysis.CreateConverter(definition.TransformsScopeTo);
                    transformsToValueType = definition.TransformsScopeTo.IsValueType;
                }
            }
 private void PrecacheReflections(Type controllerType)
 {
     var defaultConstructor = controllerType.GetConstructors().FirstOrDefault(x => x.GetParameters().Length == 0);
     if (defaultConstructor == null) throw new ArgumentException("StatementHandler " + controllerType.Name + " does not have a default constructor");
     activator = FastFlect.GetActivator(defaultConstructor);
     delegateForScopeSetter = controllerType.DelegateForSetPropertyValue("Scope");
     delegateForContextSetter = controllerType.DelegateForSetPropertyValue("Context");
     delegateForAttachmentsSetter = controllerType.DelegateForSetPropertyValue("Attachments");
     delegateForTracerSetter = controllerType.DelegateForSetPropertyValue("Tracer");
     delegateForInvokation = definition.MethodInfo.DelegateForCallMethod();
     if (definition.TransformsScopeTo != null)
     {
         scopeConverter = StaticAnalysis.CreateConverter(definition.TransformsScopeTo);
         transformsToValueType = definition.TransformsScopeTo.IsValueType;
     }
 }