Is there a way to set a property of a property, at runtime, then? This is what I REALLY want to do, but I believe this is not possible: [AttributeUsage(AttributeTarget.Property,Inherited=true,AllowMultiple=true)] public class SecurityInfoAttribute : Attribute { // Private Data private int readable; private int writable; // Constructor public SecurityInfoAttribute(int readable, int writable) { this.security_readable = 0; this.security_writable = 0; } public int Readable { get { return readable; } set { readable = value; } } public int Writable { get { return writable; } set { writable = value; } } } public class employee { string name; [SecurityInfo(getReadSecurityInfo(userId), getWriteSecurityInfo(userId))] string Name{get{return name;}set{name = value;}} }