ArcGIS Özel Özelliklerini C # ile Uygula?


11

.NET'te özel özellikler uygulamak mümkün müdür ?

Öyleyse nasıl?

Sorunun .NET ile COM toplama yapabildiğinden şüpheleniyorum , ancak bununla ilgili bir şey bulamıyorum ...

Herkes oluşturmak için mümkün olup olmadığını biliyor mu Çalışma süresi COM_INTERFACE_ENTRY_AGGREGATE_BLIND destekleyen bir .NET sınıfı için COM çağrılabilir sarıcı?


Yönetilmeyen (.NET) ortak sınıfını yönetilmeyen bir çerçeveye (ArcObjects) yayınlayacağınız için, çalışma zamanı tarafından çağrılabilir bir sarıcı (RCW) yerine COM tarafından çağrılabilir bir sarıcı (CCW) oluşturmayacak mısınız?
stakx

Cevabımı COM toplamanın gerçekte mümkün olduğu .NET 4'teki yeni özellikleri yansıtacak şekilde güncelledim.
Petr Krebs

Ayrıca, bunun için bir kanıtım olmamasına rağmen, Yönetilen C ++ COM ile uğraşırken size biraz daha özgürlük veriyor gibi görünüyor. Bunu C # ile yapmak için iyi bir yol bulamazsanız, kritik kod parçaları için Managed C ++ 'a bakabilirsiniz.
stakx

Yanıtlar:


4

.NET 3.5 veya daha düşük bir sürümde saf COM toplama uygulayamayacaksınız, ancak yeni ICustomQueryInterface arabirimini ekleyerek arabirim sorgularını düzgün bir şekilde yönlendirmenize olanak tanıyan .NET 4'te şanslı olabilirsiniz . Dahil edilen bir örnekle ilgili daha fazla bilgi codeplex'te bulunabilir .

Ayrıca C ++ ESRI dokümanlar örneği boyunca devam etmenizi öneririm . Bağlantı 9.0 içindir, ancak bu özel örneğin bir bit değişmediğinden şüpheleniyorum.


Bu sorun beni çok ilgilendirdiğinden, ESRI örneğini .NET 4 C # 'a taşımaya çalışacağım.
Petr Krebs

Hey Petr, bu numunenin C # versiyonuna sahip olmak harika olurdu! ArcGIS 10.0 PIA 3.5 için olsa da, sanırım özel özellikler hala 4.0 (?) Olabilir Birkaç gün içinde bu soruya bir lütuf ekleyeceğim.
Kirk Kuykendall

@Petr bu örnek nasıl geliyor;)
blah238 27:11

@ blah238: göründüğü kadar kolay olmadığı ortaya çıktı ..;) Orada .NET COM toplama ile ilgili çok fazla belge veya örnek yok. Ben ona geri dönmeye çalışacağım.
Petr Krebs

@Kirk: BTW - .NET 4 kullanarak uzantı yapmaya çalışırken bazı gerçekten garip sorunlarla karşılaştık - bu yüzden tavsiye etmem. En azından 10sp1 ile düzgün çalışması için şeyler almak için bir ton kodumuzu 3.5sp1 backport zorunda sona erdi. (Bir örnek - belirli belge olaylarına abone olmak ve başka bir şey yapmamak, ArcMap'te sağ tıklama menülerini devre dışı bırakacaktır - tamamen ilgisiz işlevsellik olmasına rağmen ...)
Reed Copsey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.