是否可以将 FxCop.SDK.TypeNode 转换为 System.Type
Posted
技术标签:
【中文标题】是否可以将 FxCop.SDK.TypeNode 转换为 System.Type【英文标题】:Is it possible to cast a FxCop.SDK.TypeNode to a System.Type 【发布时间】:2011-01-21 15:04:44 【问题描述】:是否可以将 Microsoft.FxCop.Sdk 中的 FxCop.SDK.TypeNode 转换为 System.Type ?
【问题讨论】:
【参考方案1】:不是真的。 FxCop 曾经为此内置了一个反射“桥”,但it was removed in FxCop 1.36。您可能会根据程序集位置和类型名称滚动您自己的机制。但是,在大多数情况下,这确实不是必需的。如果您可以解释为什么要这样做,则可能会建议另一种方法...
【讨论】:
我正在尝试加载和读取程序集而不锁定它。我需要读取特定命名空间中的类,并且需要使用这些类的 Type 对象。我将从 T4 模板执行此操作。我一直在使用 VolatileAssembly,但这只运行了 1 次,之后它说找不到命名空间是否缺少引用。 “使用这些类的 Type 对象”是什么意思?您是否需要从这些类运行代码或从类型中读取元数据?如果是后者,您可以通过 FxCop API 执行此操作。如果您不确定如何,请发布您将针对 Type 编写的代码(如果可以的话)。 如果我有一个命名空间:“Bob.entities”并且有一个 Bob.entities.myclass1 类,我想在类型对象中获取 bob.entities.myclass1。基本上我只需要从 t4 模板中读取一个汇编。它可以正常工作,但是如果我这样做 .... Bob.Some 并且有一个使用 Bob.Some 的 Bob.Some.Extended 的其他程序集,我会收到一条错误消息,提示未引用程序集...然后我只运行 1 次我得到那个错误....只是没有意义。我不记得确切的代码...因为我现在正在度假...但它类似于... Assembly.GetTypes() where assembly name = Bob.Entites 是的,但是一旦你得到了这个类型,你想做什么呢? 我想使用如下函数:Type.GetFields()。并根据这些值生成一些东西。以上是关于是否可以将 FxCop.SDK.TypeNode 转换为 System.Type的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 MPMoviePlayerController 静音?