NonComVisibleBaseClass
От: romstyop  
Дата: 26.09.07 09:49
Оценка:
Есть контрол унаследованный от базового класса из сторонней сбоки (изменения не возможны).
На этом контроле расположен WebControl.

В html коде выполняется onclick = "window.external.Test();"

    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class DocumentClientInfo : DocumentPane
    {
        public DocumentClientInfo()
            : base()
        {
            InitializeComponent();

            webBrowser1.ObjectForScripting = this;

            webBrowser1.DocumentText = "...";
        }

        public void Test()
        {
            MessageBox.Show("Ok");
        }
    }


При срабатывании события onclick получаю следющую ошибку

NonComVisibleBaseClass was detected
Message: Был произведен вызов QueryInterface, запрашивающий используемый по умолчанию интерфейс IDispatch видимого управляемого COM-класса "DocumentClientInfo". Однако, поскольку у этого класса нет явного интерфейса по умолчанию, и он является производным от видимого не-COM класса "DocumentPane", вызов QueryInterface завершится со сбоем. Это сделано для того, чтобы уберечь видимый базовый не-COM класс от ограничений, которые накладываются правилами управления версиями COM.

Как с этим бороться???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.