Ancestry.Daisy.Statements.ReflectionStatementDefinition.ReflectionLinkedStatement.PrecacheReflections C# (CSharp) Method

PrecacheReflections() private method

private PrecacheReflections ( Type controllerType ) : void
controllerType System.Type
return void
            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;
                }
            }