mbnapi.tlbによって提供される相互運用インターフェイスを使用するこのMSDNの例に従って、Windowsランタイムに相当するものがないいくつかのCOMインターフェイスをラップするためにC#で記述されたWindowsランタイムコンポーネントに取り組んでいます。ラッパークラスのコンストラクターでIMbnInterfaceManagerメンバーをインスタンス化しようとすると、次のようになります。
m_InterfaceManager = (IMbnInterfaceManager)new MbnInterfaceManager();
E_NOINTERFACEが原因でSystem.InvalidCastExceptionがスローされます(このようなインターフェイスはサポートされていません)。
ただし、ラッパーをWinMDコンポーネントではなくクラスライブラリとしてビルドすると、他の変更なしで正常に動作します。
ライブラリの有用性を制限しないように、これをWindowsランタイムコンポーネントとして構築したいと思います。(これが意図されているプロジェクトの少なくとも1つはJavascript / HTMLで書かれています。)私は何か間違ったことをしていますか、それとも私がしようとしていることは不可能ですか?
編集:それは.NET4.5RCのバグであることが判明しました。他の誰かがこの問題に遭遇した場合に備えて、この質問をここに残しておきます。問題が見つかった場合は、回避策を投稿します。おそらくそれはRTMによって修正されるでしょう。