【问题标题】:Where did my custom attribute assembly reference go?我的自定义属性程序集参考去哪儿了?
【发布时间】:2011-01-05 13:27:57
【问题描述】:

我在AssemblyA 中有以下代码:

[TypeConverter(typeof(AssemblyB.TestTypeConverter))]
public class TestClass
{

}

TestTypeConverter 在不同的程序集中定义 (AssemblyB)。这是AssemblyA 中对AssemblyB 的唯一引用。当我编译这个并查看反射器时,TypeConverterAttribute 在那里,但AssemblyA 没有对 AssemblyB.dll 的任何程序集引用;它只有 mscorlib 和 System.dll。它去哪儿了,.NET 如何知道在AssemblyB 中查找TestTypeConverter

【问题讨论】:

  • 通过ildasm /all 运行您的程序集并查看元数据表。
  • 我在 CFF Explorer 中查看过,只有两个 AssemblyRef 条目是 System.dll 和 mscorlib
  • “汇编”标签用于汇编语言编程。我已经删除了,希望你不要介意。

标签: .net custom-attributes


【解决方案1】:

我试图在我的盒子上复制它,但看不到它。当我在 AssemblyA 中引用 AssemblyB.TestTypeConverter 时,Reflector 正确地说 AssemblyA 引用了 AssemblyB。

TestClass 是否使用 Reflector 中的属性进行了标记?如果是这样,点击Reflector中的属性会发生什么?

【讨论】:

  • 该属性在反射器中显示为 ok,单击 typeof() 打开 AssemblyB 并导航到该类型,但在“参考”列表中只有 System 和 mscorlib。你确定没有其他东西是从 AssemblyA 引用 AssemblyB 的吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 2017-02-06
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多