Я делаю программу, и я хочу сделать Reflection, но для этого мне нужен объект класса Type, правильно? использовать .GetProperties (метод) ... Так я судимое это:Как вернуть тип системы .__ COMObject в System.Type в C#
Type typeName = simObjects.getType();
Но .GetType() возвращает "System .__ ComObject". И это не полезно. То же самое происходит с .typeof(). Я поиск и нашел еще один код, это один:
Type typeName = (Type)Microsoft.VisualBasic.Information.TypeName(simObjects);
Но этот метод возвращает строку, и мне это нужно в System.Type, Может ли гениальная, пожалуйста, помогите мне?
COM не поддерживает отражение. –
http://www.add-in-express.com/creating-addins-blog/2011/12/20/type-name-system-comobject/ – MethodMan
@HansPassant Вы можете использовать CustomMarshaler для преобразования COM ITypeInfo (доступно на COM-объектах, реализующих IDispatch), в .NET Reflection Type, как показано в [этом ответе] (http://stackoverflow.com/a/14208030/3175562) и [этот проект] (http://www.codeproject.com/Статьи/523417/Reflection-с-IDispatch основе-COM-объекты). – Mike