好的,编辑了代码以进行澄清:
问题:如何[MyAttr("...")]
从...TestClassOne/Two
访问属性BaseClass.TheAttribute
?
除 TestClassOne/Two 之外的所有类都将编译到我的“核心”中,并作为开发平台交付给客户。TestClassOne/Two 是客户开发的,所以“核心”中不可能有TestClassOne/Two 的知识。
下面的代码被编译成“核心”并作为 dll 交付给客户。
[TestMethod()]
public void AttrTest()
{
var one = new TestClassOne();
var attrOne = one.MyTestProperty.TheAttribute;
var two = new TestClassTwo();
var attrTwo = two.MyTestProperty.TheAttribute;
}
public class MyAttr : Attribute
{
private string _test;
public MyAttr(string test)
{
this._test = test;
}
}
public class BaseClass
{
public string TheAttribute
{
get {
// Here I would like to get the "[MyAttr("...")]" from the classes in the bottom
return null;
}
}
}
public class SubClass : BaseClass
{
}
下面的代码是由客户开发的(使用我的 dll)
public class TestClassOne
{
[MyAttr("Attribute one")]
public SubClass MyTestProperty = new SubClass();
}
public class TestClassTwo
{
[MyAttr("Attribute two")]
public SubClass MyTestProperty = new SubClass();
}