2013-05-09 5 views
2

Интерфейс System.Windows.Input.ICommand имеет тип Переадресованный с .NET 4.5, находясь в PresentationCore.dll в System.dll. У меня 2 вопроса:Mono.Cecil GetTypeReference to ICommand

  1. Как я могу импортировать этот интерфейс, так что я могу использовать его в качестве типа возвращаемого имущества я инъекционный в класс (не нуждается в помощи с инъекцией собственности, просто введите разрешение/импорт)?

  2. Как я могу быть уверен, что моя итоговая сборка будет работать на клиентах .NET 4, у которых нет установленного .NET 4.5, и как таковые не имеют типа ICommand, перенаправленного в System.dll?

Код должен использоваться в обычном торгах Fody.

ответ

1

Вы должны обращаться с ним явно.

Например, поиск Action, который может существовать в сборках diff.

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"); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^