lundi 12 janvier 2015

Raising warnings based on class attributes

Here is some code:



class Program
{
static void Main(string[] args)
{
MyClass class1 = new MyClass();
MyOtherClass class2 = new MyOtherClass();

Helper.UseAttribute<MyClass>(class1);

//Raise a warning to tell the developer that they cannot use this class
//as there is no property with the specified attribute.
Helper.UseAttribute<MyOtherClass>(class2);
}
}

public class MyAttribute : System.Attribute { }

class MyClass
{
[MyAttribute]
public string SomethingAwesome { get; set; }
}

class MyOtherClass
{
public string SomethingElseWhichIsAlsoPrettyAwesome { get; set; }
}

static class Helper
{
public static void UseAttribute<T>(T sender)
{
//Do something with the property that has MyAttribute
//If there isn't a property with this attribute, then raise
//a warning.
}
}


In an ideal scenario, I want to restrict a developer from passing classes to a method which do not have a certain attribute.


I am aware that I can use an interface, or a base class of some description, however the question really is whether something like the example above is possible.






Aucun commentaire:

Enregistrer un commentaire