.NET で作成した COM dll があります。Silverlight経由でアクセスしています。私が抱えている問題は、byte[] を COM dll に渡していることですが、正しく動作していないようです。[In][Out] としてマークしようとしましたが、うまくいきませんでした。
void LoadData(byte[] data)
これは私の機能がどのように見えるかです。COM側でデータを正常にロードしますが、Silverlightには戻りません。
.NET で作成した COM dll があります。Silverlight経由でアクセスしています。私が抱えている問題は、byte[] を COM dll に渡していることですが、正しく動作していないようです。[In][Out] としてマークしようとしましたが、うまくいきませんでした。
void LoadData(byte[] data)
これは私の機能がどのように見えるかです。COM側でデータを正常にロードしますが、Silverlightには戻りません。
COM Interop を使用する場合は、配列を参照渡ししてみてください。
void LoadData(ref byte[] data)
ここで、配列のデフォルトのマーシャリングを調べると役立つ場合があります。
それでも問題が解決しない場合は、COM dll のタイプ ライブラリを生成します (たとえば、tlbexp を使用します)。呼び出している関数の IDL 定義を見ると、byte[] パラメータが機能しない理由が明らかになる場合があります。それでも明確でない場合は、その IDL をここに投稿してください。少なくともより多くの手がかりが得られます。
byte[] data = new byte[30]
LoadData(Convert.toBase64String(data.Tostring()));
void LoadData(byte[] data)
{
}