Я немного неясен в использовании интерфейса IUnknown. Разве интерфейс IUnknown предназначен только для работы с объектами COM / COM + и некоторыми неуправляемыми кодами, такими как Win API?
COM-интерфейсы используются главным образом неуправляемым кодом. Если вам нужен C #, который вы пишете, для взаимодействия с неуправляемым кодом, вы можете экспортировать его как COM-интерфейсы:
COM-взаимодействие с C #
IUnknown обычно является базовым классом для объектов COM.
IUnknown - интерфейс COM / COM +. Он не используется изначально языками .NET, такими как C #.
В контексте C # и .NET - да. Вы должны использовать IUnknown только для COM.