public bool PosTest1() { bool retVal = true; const string c_TEST_ID = "P001"; const string c_TEST_DESC = "PosTest1: Intinalize the conditional attribute using not empty string."; string errorDesc; string conditionalString; conditionalString = "CLR_API_Test"; TestLibrary.TestFramework.BeginScenario(c_TEST_DESC); try { ConditionalAttribute conditionalAtt = new ConditionalAttribute(conditionalString); if (conditionalAtt.ConditionString != conditionalString) { errorDesc = string.Format("Faile to initialize the conditional attribute using string \"{0}\"", conditionalString); TestLibrary.TestFramework.LogError("001" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } } catch (Exception e) { errorDesc = "Unexpected exception: " + e; TestLibrary.TestFramework.LogError("002" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } return retVal; }
public bool PosTest1() { bool retVal = true; const string c_TEST_ID = "P001"; const string c_TEST_DESC = "PosTest1: Get unempty ConditionString"; string errorDesc; string expectedCondition; string actualCondition; expectedCondition = "CLR_Test_Case"; ConditionalAttribute conditionalAtt = new ConditionalAttribute(expectedCondition); TestLibrary.TestFramework.BeginScenario(c_TEST_DESC); try { actualCondition = conditionalAtt.ConditionString; if (actualCondition != expectedCondition) { errorDesc = "The value of property ConditionString of instance of class ConditionalAttribute is not " + "the value \"" + expectedCondition + "\" as expected: Actually\"" + actualCondition + "\""; TestLibrary.TestFramework.LogError("001" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } } catch (Exception e) { errorDesc = "Unexpected exception: " + e; TestLibrary.TestFramework.LogError("002" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } return retVal; }
public static void Test_Getting_Attribute_Instance() { // ??? no idea how to get this code work...??? // GetCustomAttributes(MemberInfo, Type): Retrieves an array of the custom attributes applied to a member of a type. First(): returns the first element of a sequence ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttributes(typeof(C2_Listing59), typeof(ConditionalAttribute)).First(); // use GetCustomAttributes below can retrieve the Conditional("CONDITION1") from C2_Listing59 Console.WriteLine("The conditionalAttribute is:{0}", conditionalAttribute.ConditionString); Console.ReadLine(); }
public ConditionalBinding(ConditionalAttribute attribute, int level) : base(attribute, level) { ConditionalValue = attribute.Value; if (ConditionalValue != null) { _conditionalValueType = ConditionalValue.GetType(); } }
public static void Ctor() { var attribute0 = new ConditionalAttribute(null); Assert.Null(attribute0.ConditionString); var attribute = new ConditionalAttribute("CONDITION"); Assert.Equal("CONDITION", attribute.ConditionString); }
public Conditional BuildConditional(string methodName, ModelId modelId, ConditionalAttribute attribute) { return(new Conditional() { ModelId = modelId, Name = methodName, ConditionalId = attribute.ConditionalId, DisplayName = attribute.DisplayName, Description = attribute.Description }); }
public void Main() { ConditionalAttribute conditionaAttribute = (ConditionalAttribute)Attribute.GetCustomAttribute( typeof(Listing_62), typeof(ConditionalAttribute)); string condition = conditionaAttribute.ConditionString; Console.WriteLine(condition); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { ConditionalAttribute attr = (ConditionalAttribute)attribute; string validation = attr.validation; var p = property.serializedObject.FindProperty(validation); if (p.boolValue) { EditorGUI.PropertyField(position, property, label); } }
private void ConditionalAttributeExample() { Console.WriteLine("Conditional Attribute Example"); ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(ConditionalClass), typeof(ConditionalAttribute)); if (null != conditionalAttribute) { string condition = conditionalAttribute.ConditionString; Console.WriteLine(condition); } else { Console.WriteLine("No condition attribute found"); } Console.WriteLine("Conditional attributes can be applied to methods or attribute class"); }
static void Main(string[] args) { Console.WriteLine("Using Serializable attribute: Line 44"); Console.WriteLine("Creating custom attribute: Line 56"); Console.WriteLine("Conditional Attribute:"); //Condition1 defined in line 1 MyMethod(); //Reading attributes using reflection if (Attribute.IsDefined(typeof(Person), typeof(SerializableAttribute))) { Console.WriteLine("The Person is using the Serializable attribute"); } //You can retrieve the specific instance of an attribute so that you can look at its properties. ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttribute( typeof(Person), typeof(ConditionalAttribute)); //Will return CONDITION1 //string condition = conditionalAttribute.ConditionString; //Console.WriteLine(condition); Console.WriteLine("Using Reflection: Line 92"); GetObjectType(); //Using reflection to inspect field/value int i = 45; object o = i; DumpObject(o); //using Reflection to execute a method ExecuteMethod(); //Lambda Expressions lambda(); //Expression trees Console.WriteLine("Creating a 'Hello World!' app through expression trees!"); ExpressionTrees(); }
public static void ExampleGetAttribute() { if (Attribute.IsDefined(typeof(Person), typeof(SerializableAttribute))) { } //ConditionalAttribute conditionalAttribute = // (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(Person), typeof(ConditionalAttribute)); Person p = new Person(); MethodInfo methodInfo2 = p.GetType().GetMethod("MyMethod"); //MethodBase method = MethodBase.GetMethodFromHandle(); ConditionalAttribute attr = (ConditionalAttribute)methodInfo2.GetCustomAttributes(typeof(ConditionalAttribute), true)[0]; Console.WriteLine("=============================="); Console.WriteLine(attr); Console.WriteLine("=============================="); //IVESTIGATE //string condition = conditionalAttribute.ConditionString; // returns CONDITION1 //Console.WriteLine(condition); }
public bool CheckCall(string message) { bool found = false; foreach (var tuple in _chatBindMethods) { var collection = tuple.Item1; var method = tuple.Item2; var chatAttributes = method.GetCustomAttributes <ChatAttribute>(); var conditionalAttributes = method.GetCustomAttributes <ConditionalAttribute>(); foreach (var chatAttribute in chatAttributes) { if (chatAttribute.IsActive(Core) && ConditionalAttribute.CanExecute(conditionalAttributes)) { var match = Regex.Match(message, $"^{chatAttribute.Regex}"); if (match.Success) { var groups = new List <string>(); for (int i = 0; i < match.Groups.Count; i++) { groups.Add(match.Groups[i].Value); } if (chatAttribute.IsAsync(method)) { Task.Run(async() => await method.InvokeAsync(collection, new object[] { groups.ToArray() })); } else { method.Invoke(collection, new object[] { groups.ToArray() }); } found = true; } } } } return(found); }
//[Conditional("Condition1"), Conditional("Condition2")] //static void Conditionable() //{ // string myField = "Stuff"; //} static void Main(string[] args) { if (Attribute.IsDefined(typeof(Person), typeof(SerializableAttribute))) { Console.WriteLine("Serializable class"); } //this breaks, but compiler did not like placing Conditional Attribute on the class itself. ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttribute( typeof(ConditionalClass), typeof(ConditionalAttribute)); string condition = conditionalAttribute.ConditionString; Console.WriteLine(condition); Console.WriteLine("Hello World!"); Console.ReadKey(); }
private bool CheckField(SerializedProperty condition, ConditionalAttribute attr) { if (condition.propertyType == SerializedPropertyType.ObjectReference) { return(condition.objectReferenceValue != null); } if (condition.propertyType == SerializedPropertyType.Boolean) { return(condition.boolValue); } if (condition.propertyType == SerializedPropertyType.Integer) { return(condition.intValue == (int)attr.TestValue); } if (condition.propertyType == SerializedPropertyType.Enum) { return(condition.enumValueIndex == (int)attr.TestValue); } return(false); }
public bool PosTest2() { bool retVal = true; const string c_TEST_ID = "P002"; const string c_TEST_DESC = "PosTest2: Get empty ConditionString"; string errorDesc; string expectedCondition; string actualCondition; expectedCondition = string.Empty; ConditionalAttribute conditionalAtt = new ConditionalAttribute(expectedCondition); TestLibrary.TestFramework.BeginScenario(c_TEST_DESC); try { actualCondition = conditionalAtt.ConditionString; if (actualCondition != expectedCondition) { errorDesc = "The value of property ConditionString of instance of class ConditionalAttribute is not " + "the value string.Empty as expected: Actually\"" + actualCondition + "\""; TestLibrary.TestFramework.LogError("003" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } } catch (Exception e) { errorDesc = "Unexpected exception: " + e; TestLibrary.TestFramework.LogError("004" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } return(retVal); }
public bool CheckCall(string command) { var args = command.Split(' '); if (args.Length == 0) { return(false); } foreach (var tuple in _textBindMethods) { var collection = tuple.Item1; var method = tuple.Item2; var textAttributes = method.GetCustomAttributes <TextAttribute>(); var conditionalAttributes = method.GetCustomAttributes <ConditionalAttribute>(); foreach (var textAttribute in textAttributes) { if (String.Compare(textAttribute.Command, args[0], true) == 0) { if (textAttribute.IsActive(Core) && ConditionalAttribute.CanExecute(conditionalAttributes)) { var argsList = new List <string>(args.Skip(1)); if (argsList.Count >= textAttribute.ArgumentCount) { if (method.ReturnType == typeof(bool) || method.ReturnType == typeof(Task <bool>)) { if (textAttribute.IsAsync(method)) { Task.Run(async() => { var returnValue = await method.InvokeAsync <bool>(collection, new object[] { argsList.ToArray() }); if (!returnValue) { ChatUtil.ShowUsage($"Benutzung: {args[0]} {textAttribute.Arguments}"); } }); } else { Task.Run(() => { var returnValue = (bool)method.Invoke(collection, new object[] { argsList.ToArray() }); if (!returnValue) { ChatUtil.ShowUsage($"Benutzung: {args[0]} {textAttribute.Arguments}"); } }); } } else { if (textAttribute.IsAsync(method)) { Task.Run(async() => await method.InvokeAsync(collection, new object[] { argsList.ToArray() })); } else { Task.Run(() => method.Invoke(collection, new object[] { argsList.ToArray() })); } } } else { ChatUtil.ShowUsage($"Benutzung: {args[0]} {textAttribute.Arguments}"); } return(true); } } } } return(false); }
//Listing 2-62 Getting a specific attribute instance static void GettingSpecificAttributeInstance() { ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttributes( typeof(ConditionalAttribute)).First(); }
bool ShouldDraw(SerializedProperty property) { ConditionalAttribute attribute = this.attribute as ConditionalAttribute; return(property.serializedObject.FindProperty(attribute.conditionProperty).boolValue); }
private bool SetupCondition(VisualElement element, SerializedProperty property, ConditionalAttribute conditionalAttribute) { switch (conditionalAttribute.Type) { case ConditionalAttribute.TestType.Bool: return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, true, true, value => UpdateBoolVisibility(element, value, conditionalAttribute.BoolTest))); case ConditionalAttribute.TestType.Int: return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, 0, true, value => UpdateNumberVisibility(element, value, conditionalAttribute.IntValue, conditionalAttribute.NumberTest))); case ConditionalAttribute.TestType.Float: return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, 0.0f, true, value => UpdateNumberVisibility(element, value, conditionalAttribute.FloatValue, conditionalAttribute.NumberTest))); case ConditionalAttribute.TestType.String: return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, string.Empty, true, value => UpdateStringVisibility(element, value, conditionalAttribute.StringValue, conditionalAttribute.StringTest))); case ConditionalAttribute.TestType.Enum: return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, default(Enum), true, value => UpdateEnumVisibility(element, value, conditionalAttribute.IntValue, conditionalAttribute.EnumTest))); case ConditionalAttribute.TestType.Object: return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, (Object)null, true, value => UpdateObjectVisibility(element, value, conditionalAttribute.ObjectTest))); } return(false); }
public void gettingAnAttributeInstance() { ConditionalAttribute cAt = (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(conditionalClass), typeof(ConditionalAttribute)); var name = cAt.ConditionString; }
public static void RunMain() { ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(ConditionalClass), typeof(ConditionalAttribute)); string condition = conditionalAttribute.ConditionString; // returns CONDITION1 // not throw error, will figure it out soon }
public bool PosTest2() { bool retVal = true; const string c_TEST_ID = "P002"; const string c_TEST_DESC = "PosTest2: Intinalize the conditional attribute using string.Empty."; string errorDesc; string conditionalString; conditionalString = string.Empty; TestLibrary.TestFramework.BeginScenario(c_TEST_DESC); try { ConditionalAttribute conditionalAtt = new ConditionalAttribute(conditionalString); if (conditionalAtt.ConditionString != conditionalString) { errorDesc = "Failed to initialize the conditional attribute using an empty string(string.Empty)"; TestLibrary.TestFramework.LogError("003" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } } catch (Exception e) { errorDesc = "Unexpected exception: " + e; TestLibrary.TestFramework.LogError("004" + " TestId-" + c_TEST_ID, errorDesc); retVal = false; } return retVal; }