У меня есть dll, загружаемая во время выполнения. Я пытаюсь создать экземпляры каждого типа из динамически загружаемой dll во время выполнения и добавить эти экземпляры в список. Все классы в dll основаны на AYClass, поэтому их следует добавить в список успешно. Но я с такой ошибки, как показано нижеСоздайте список объектов из динамически загружаемой dll во время выполнения
Exception thrown:
'Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException' in Microsoft.CSharp.dll
Additional information: An unexpected exception occurred while binding a dynamic operation
Мой код, как показано ниже ...
Assembly assembly = Assembly.LoadFrom(@"D:\Library\CurrencyData.dll");
List<AYClass> listObjects = new List<AYClass>();
foreach (Type type in assembly.GetExportedTypes())
{
if (type.BaseType.ToString().Contains("AYClass"))
{
dynamic c = Activator.CreateInstance(type);
listObjects.Add(c); // ******* Exception is thrown here
}
}
Что я должен сделать, чтобы исправить это?
привет, если вы используете «var», вы не можете использовать listObjects.add (c). вы должны использовать тип объекта для AYClass –
@ayilmaz. Вы можете использовать активатор AYClass c = (AYClass). Создавать атрибут (тип); 'var - это просто сокращение, чтобы скрыть тип. 'var' все еще работает. – user3185569
@BendEg, он дает мне эту ошибку. Невозможно наложить объект типа «AY.CurrencyData.Model.Currency» на тип «AY.CurrencyData.Model.AYClass». –