Triển khai các tính năng tùy chỉnh ArcGIS với C #?


11

Có thể thực hiện các tính năng tùy chỉnh trong .NET?

Nếu vậy thì thế nào?

Tôi nghi ngờ vấn đề là có thể thực hiện tổng hợp COM với .NET, nhưng tôi không thể tìm thấy bất cứ điều gì về điều đó ...

Có ai biết nếu có thể tạo ra một thời gian chạy Trình bao bọc có thể gọi COM cho một lớp .NET hỗ trợ COM_INTERFACE_ENTRY_AGGREGATE_BLIND?


Bạn sẽ không tạo một trình bao bọc có thể gọi được COM (CCW) chứ không phải là trình bao bọc có thể gọi được trong thời gian chạy (RCW), vì bạn sẽ xuất bản một lớp đồng quản lý (.NET) sang một khung công tác không được quản lý (ArcObjects)?
stakx

Tôi đã cập nhật câu trả lời của mình để phản ánh các tính năng mới trong .NET 4 nơi thực hiện tổng hợp COM thực sự có thể.
Petr Krebs

Ngoài ra, trong khi tôi không có bất kỳ bằng chứng nào cho việc này, có vẻ như Managed C ++ cho phép bạn tự do hơn khi giao dịch với COM. Trong trường hợp bạn không tìm thấy một cách tốt để làm điều này với C #, bạn có thể xem Managed C ++ cho các đoạn mã quan trọng.
stakx

Câu trả lời:


4

Bạn sẽ không thể triển khai tổng hợp COM thuần túy trong .NET 3.5 trở xuống, nhưng bạn có thể gặp may mắn trong .NET 4, có thêm giao diện ICustomQueryInterface mới , cho phép bạn chuyển hướng các truy vấn giao diện chính xác. Thông tin thêm với một mẫu bao gồm có thể được tìm thấy trên codeplex .

Tôi cũng khuyên bạn nên tiến hành dọc theo mẫu tài liệu ESRI C ++ . Liên kết là cho 9.0, nhưng tôi nghi ngờ mẫu cụ thể này đã không thay đổi một chút.


Vì vấn đề này làm tôi quan tâm rất nhiều, tôi sẽ cố gắng chuyển mẫu của ESRI sang .NET 4 C #.
Petr Krebs

Này Petr, thật tuyệt khi có phiên bản C # của mẫu! Mặc dù ArcGIS 10.0 PIA dành cho 3.5, tôi đoán các tính năng tùy chỉnh vẫn có thể là 4.0 (?) Tôi sẽ thêm tiền thưởng cho câu hỏi này trong một vài ngày.
Kirk Kuykendall

@Petr làm thế nào mẫu đó đến;)
blah238

@ blah238: hóa ra nó không dễ dàng như nó trông giống như ..;) Không có nhiều tài liệu hoặc mẫu như tổng hợp .NET COM ngoài kia. Tôi sẽ cố gắng trở lại với nó.
Petr Krebs

@Kirk: BTW - Chúng tôi gặp phải một số vấn đề thực sự lạ khi cố gắng thực hiện các tiện ích mở rộng bằng .NET 4 - vì vậy tôi không khuyến nghị điều đó. Cuối cùng tôi đã phải nhập một tấn mã của chúng tôi lên 3,5sp1 để mọi thứ hoạt động bình thường, ít nhất là với 10sp1. (Một ví dụ - đăng ký vào các sự kiện tài liệu nhất định, và không làm gì khác, sẽ vô hiệu hóa menu chuột phải trong ArcMap - mặc dù nó hoàn toàn không liên quan chức năng ...)
Reed Copsey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.