If you are trying to do that in a Portable Class Library PCL (like me), then here is how you can do it :)
public class Foo
{
public string A {get;set;}
[Special]
public string B {get;set;}
}
var type = typeof(Foo);
var specialProperties = type.GetRuntimeProperties()
.Where(pi => pi.PropertyType == typeof (string)
&& pi.GetCustomAttributes<Special>(true).Any());
You can then check on the number of properties that have this special property if you need to.