Beispiel #1
0
 //public SemanticField(FieldQualifier varQualifier, Type type, string varName)
 public SemanticField(QualifierAttribute attribute, Type type, string varName, CSShaderCode shaderCode)
 {
     //this.varQualifier = varQualifier;
     this.attribute  = attribute;
     this.varType    = type;
     this.varName    = varName;
     this.shaderCode = shaderCode;
 }
        public void Transform_NonNullOrEmptyString_QualifiedValueReturned()
        {
            var value              = "Test";
            var qualifier          = "\"";
            var qualifierAttribute = new QualifierAttribute(qualifier, conditionalContains: null);
            var transformedValue   = qualifierAttribute.Transform(value);

            Assert.AreEqual($"{qualifier}{value}{qualifier}", transformedValue);
        }
        public void Transform_ConditionalQualifierWithValueNotMeetingCondition_OriginalValueReturned()
        {
            var value              = "Test";
            var qualifier          = "\"";
            var qualifierAttribute = new QualifierAttribute(qualifier, conditionalContains: ",");
            var transformedValue   = qualifierAttribute.Transform(value);

            Assert.AreEqual(value, transformedValue);
        }
        public void Transform_ConditionalQualifierWithValueMeetingCondition_QualifiedValueReturned()
        {
            var value              = "Te,st";
            var qualifier          = "\"";
            var qualifierAttribute = new QualifierAttribute(qualifier, conditionalContains: ",");
            var transformedValue   = qualifierAttribute.Transform(value);

            Assert.AreEqual($"{qualifier}{value}{qualifier}", transformedValue);
        }
        public void Transform_NullValue_JustQualifiersReturned()
        {
            var value              = (string)null;
            var qualifier          = "\"";
            var qualifierAttribute = new QualifierAttribute(qualifier, conditionalContains: null);
            var transformedValue   = qualifierAttribute.Transform(value);

            Assert.AreEqual($"{qualifier}{qualifier}", transformedValue);
        }
Beispiel #6
0
        /// <summary>
        /// Creates the parameters to be used for the method or constructor to create the bean instance.
        /// </summary>
        /// <returns>The parameters.</returns>
        /// <param name="parametersInfo">Parameters info.</param>
        protected object[] CreateParameters(ParameterInfo[] parametersInfo)
        {
            List <object> parameters = new List <object>();

            parametersInfo.ToList().ForEach(x =>
            {
                QualifierAttribute qualifierAttribute = x.GetCustomAttribute <QualifierAttribute>();
                string qualifier = qualifierAttribute != null ? qualifierAttribute.Name : null;
                parameters.Add(Context.Resolve(x.ParameterType, qualifier));
            });

            return(parameters.ToArray());
        }
 private void ParseQualifierProperties(QualifierAttribute attr, AutowireCandidateQualifier qualifier)
 {
     foreach (var property in attr.GetType().GetProperties())
     {
         if (!property.Name.Equals("TypeId") && !property.Name.Equals("Value"))
         {
             object value = property.GetValue(attr, null);
             if (value != null)
             {
                 var attribute = new ObjectMetadataAttribute(property.Name, value);
                 qualifier.AddMetadataAttribute(attribute);
             }
         }
     }
 }
Beispiel #8
0
        /// <summary>
        /// Autowires field dependencies in the specified instance.
        /// </summary>
        /// <returns>The autowire.</returns>
        /// <param name="instance">Instance.</param>
        public object Autowire(object instance)
        {
            // TODO: Add support for Required boolean.

            instance
            .GetType()
            .GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
            .ToList()
            .FindAll(x => x.GetCustomAttribute <AutowiredAttribute>() != null)
            .ForEach(x =>
            {
                QualifierAttribute qualifierArr = x.GetCustomAttribute <QualifierAttribute>();
                string beanName = qualifierArr != null ? qualifierArr.Name : null;
                x.SetValue(instance, Resolve(x.FieldType, beanName));
            });

            return(instance);
        }