Mono.Cecil GetTypeReference to ICommand

时间:2013-05-09 15:52:22

标签: .net aop mono.cecil fody

System.Windows.Input.ICommand接口已经从.NETC4类型转发,从PresentationCore.dll到System.dll。我有两个问题:

  1. 如何导入此接口,以便将其用作我注入类的属性的返回类型(不需要有关属性注入的帮助,只需键入解析/导入)?

  2. 如何确保生成的程序集能够在未安装.NET 4.5的.NET 4客户端上运行,因此没有ICommand类型转发到System.dll?< / p>

  3. 该代码旨在用于自定义Fody织布工。

1 个答案:

答案 0 :(得分:1)

您必须明确处理它。

例如,查找可能存在于diff程序集中的Action

var msCoreLibDefinition = assemblyResolver.Resolve("mscorlib");
var msCoreTypes = msCoreLibDefinition.MainModule.Types;
var systemDefinition = assemblyResolver.Resolve("System");
var systemTypes = systemDefinition.MainModule.Types;
var actionDefinition = msCoreTypes.FirstOrDefault(x => x.Name == "Action");
if (actionDefinition == null)
{
    actionDefinition = systemTypes.First(x => x.Name == "Action");
}