Как я могу установить динамический тип динамически?Есть ли способ установить GUID типа во время выполнения?
Глупый вопрос, но у меня есть интерфейс, который точно такой же в нескольких сторонних COM-объектах, но с каждым другим GUID.
У меня есть интерфейс C#, который выглядит так.
[Guid("1F13D3D8-3071-4125-8011-900D2EAC9A7F")]
[InterfaceType(2)]
[TypeLibType(4240)]
public interface UICtrl
{
//stuff
}
Я хочу, чтобы иметь возможность изменить GUID динамически во время выполнения в зависимости от COM объекта пользователь выбирает для загрузки. Я не могу изменить метаданные, а Type.Guid не имеет установленного свойства. Есть идеи?
Я не могу использовать Remit.Emit, потому что вызывающая сборка не использует его. Я действительно застрял!
Как вы используете интерфейс? – SLaks
@SLaks '(IConnectionPointContainer icpc = (IConnectionPointContainer) this.ocx; System.Guid g = typeof (UICtrl) .GUID; icpc.FindConnectionPoint (ref g, out icp); icp.Advise (eventMulticaster, out mCookie); почему GUID интерфейса должен быть таким же, как тот, что в COM-объекте - –
Извините ... Я не могу на всю жизнь понять, как использовать мини-уценку, несмотря на инструкции внизу, а google не помогает –