Ejemplo n.º 1
0
 public static ReflectedInfo For(Type T)
 {
     lock (Reflections)
     {
         if (Reflections.ContainsKey(T))
         {
             return(Reflections[T]);
         }
         var newInfo = new ReflectedInfo(T);
         Reflections.Add(T, newInfo);
         return(newInfo);
     }
 }
        private void BuildFromInfo()
        {
            outputPorts.Clear();
            if (eventType == null)
            {
                return;
            }

            Info = ReflectedInfo.For(eventType);
            foreach (var field in Info.reflectedFields)
            {
                outputPorts.Add(ValueOutput(field.Value.FieldType, field.Value.Name));
            }

            foreach (var property in Info.reflectedProperties)
            {
                outputPorts.Add(ValueOutput(property.Value.PropertyType, property.Value.Name));
            }
        }
        private void BuildFromInfo()
        {
            inputPorts.Clear();
            if (eventType == null)
            {
                return;
            }

            Info = ReflectedInfo.For(eventType);
            foreach (var field in Info.reflectedFields)
            {
                if (field.Value.FieldType == typeof(bool))
                {
                    inputPorts.Add(ValueInput <bool>(field.Value.Name, false));
                }
                else if (field.Value.FieldType == typeof(int))
                {
                    inputPorts.Add(ValueInput <int>(field.Value.Name, 0));
                }
                else if (field.Value.FieldType == typeof(float))
                {
                    inputPorts.Add(ValueInput <float>(field.Value.Name, 0.0f));
                }
                else if (field.Value.FieldType == typeof(string))
                {
                    inputPorts.Add(ValueInput <string>(field.Value.Name, ""));
                }
                else if (field.Value.FieldType == typeof(GameObject))
                {
                    inputPorts.Add(ValueInput <GameObject>(field.Value.Name, null).NullMeansSelf());
                }
                else
                {
                    inputPorts.Add(ValueInput(field.Value.FieldType, field.Value.Name));
                }
            }


            foreach (var property in Info.reflectedProperties)
            {
                if (property.Value.PropertyType == typeof(bool))
                {
                    inputPorts.Add(ValueInput <bool>(property.Value.Name, false));
                }
                else if (property.Value.PropertyType == typeof(int))
                {
                    inputPorts.Add(ValueInput <int>(property.Value.Name, 0));
                }
                else if (property.Value.PropertyType == typeof(float))
                {
                    inputPorts.Add(ValueInput <float>(property.Value.Name, 0.0f));
                }
                else if (property.Value.PropertyType == typeof(string))
                {
                    inputPorts.Add(ValueInput <string>(property.Value.Name, ""));
                }
                else if (property.Value.PropertyType == typeof(GameObject))
                {
                    inputPorts.Add(ValueInput <GameObject>(property.Value.Name, null).NullMeansSelf());
                }
                else
                {
                    inputPorts.Add(ValueInput(property.Value.PropertyType, property.Value.Name));
                }
            }
        }