NUnit загружает модульные тесты в seperate AppDomain, и я предполагаю, что точку входа не называют (вероятно, не нужный), следовательно блок записи является пустым.
Вы можете запросить IPersist
и GetClassID на нем.
Это дает вам CLSID
. Затем вызовите ProgIDFromCLSID :
Здесь находится объявление pinvoke.
Это дает вам ProgID.
EDIT:
Чтобы запросить интерфейс, просто выполните приведение на C #:
IPersist p = myObj as IPersist;
if (p != null)
{
// phew, it worked...
}
За кулисами это то, что на самом деле происходит, как показано здесь на C ++:
IUnknown *pUnk = // ... get object from somewhere
IPersist *pPersist = 0;
if (SUCCEEDED(pUnk->QueryInterface(IID_IPersist, (void **)&pPersist)))
{
// phew, it worked...
}
(Но в наши дни никто не утруждает себя написанием этого материала вручную, поскольку умный указатель может в значительной степени имитировать опыт C #.)