C#でArcGISカスタムフィーチャを実装しますか?


11

.NETでカスタム機能を実装することは可能ですか?

もしそうなら、どうですか?

問題は.NETでCOM集約を実行できることだと思いますが、それについて何も見つかりません...

作成することが可能かどうか誰かが知っていますか ランタイム COM_INTERFACE_ENTRY_AGGREGATE_BLINDをサポートする.NETクラスのCOM呼び出し可能ラッパー?


マネージ(.NET)コクラスをアンマネージフレームワーク(ArcObjects)に公開するため、ランタイムコール可能なラッパー(RCW)ではなく、COMコール可能なラッパー(CCW)を作成しませんか?
stakx 2010

COM集約の実装が実際に可能な.NET 4の新機能を反映するように、回答を更新しました。
Petr Krebs

また、これについての証拠はありませんが、マネージC ++を使用すると、COMを処理するときにさらに自由度が高まるようです。C#でこれを行う適切な方法が見つからない場合は、マネージC ++で重要なコードを確認できます。
stakx 2010

回答:


4

.NET 3.5以下では純粋なCOM集約を実装できませんが、.NET 4では幸運かもしれません。これにより、新しいICustomQueryInterfaceインターフェイスが追加され、インターフェイスクエリを適切にリダイレクトできます。サンプルが含まれた詳細情報はcodeplexにあります。

また、C ++ ESRIドキュメントサンプルに沿って進むことをお勧めします。リンクは9.0用ですが、この特定のサンプルは1ビットも変更されていないと思われます。


この問題は私にとって非常に興味があるので、ESRIのサンプルを.NET 4 C#に移植しようと思います。
Petr Krebs

Hey Petr、サンプルのC#バージョンがあるとすばらしいですね。ArcGIS 10.0 PIAは3.5用ですが、カスタムフィーチャは4.0(?)でもかまいません。この質問に数日で賞金を追加します。
カークカイケンダル2010

@Petrそのサンプルはどうですか;)
blah238 '27 / 07/27

@ blah238:見た目ほど簡単ではないことが判明しました..;).NET COMアグリゲーションに関するドキュメントやサンプルはあまりありません。私はそれに戻ってきてみます。
Petr Krebs

@カーク:BTW-.NET 4を使用して拡張機能を実行しようとすると、非常に奇妙な問題に遭遇しました-お勧めしません。少なくとも10sp1では、物事を適切に機能させるために、大量のコードを3.5sp1にバックポートする必要がありました。(1つの例-特定のドキュメントイベントにサブスクライブし、他に何もしないと、ArcMapの右クリックメニューが無効になります-まったく関連のない機能ですが...)
Reed Copsey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.