У меня есть приложение, которое использует плагины, которые управляются через интерфейс. Затем я динамически загружаю классы плагина и передаю их интерфейсу для работы с ними.Ошибка кастинга с отражением
У меня есть следующая строка кода, предположим, что IPlugin - это мой интерфейс.
IPlugin _plugin = (IPlugin)Activator.CreateInstance(oInfo.Assembly, oInfo.FullyQualifiedName)
Это должно быть довольно просто, создать экземпляр и передать его в интерфейс. Я знаю, что сборка и полностью определенные значения имени верны, но я получаю следующее исключение.
Exception = System.InvalidCastException: Невозможно отлитого объекта типа «System.Runtime.Remoting.ObjectHandle» ввести «MyNamespace.Components.Integration.IPlugin». на MyNamespace.Components.Integration.PluginProxy..ctor (Int32 INSTANCEID)
Любые идеи, что может привести к этому?
не будет ему нужно бросить в 'ObjectHandle' первых, для того, чтобы' Unwrap() '? – Jay
@Jay: Нет; он объявляется как возвращающий 'ObjectHandle'. Прочтите документацию. – SLaks