2009-03-03 24 views
7

Một trong những điều tốt đẹp về COM/ActiveX là EXE ngoài quy trình. Bạn có thể có một EXE mà các phương thức và thuộc tính tiếp xúc trong một biểu mẫu có thể sử dụng được bởi cả hai quy trình khác, bao gồm VBScript và JScript. Đồng thời, EXE có thể có chức năng riêng của mình, liên quan hoặc không liên quan đến chức năng được trưng ra bởi thư viện kiểu của nó.Có tương đương với COM EXE ngoài quy trình trong .NET không?

Tương đương .NET là gì?

Tôi có một dự án VB6 hiện có là một trình thông dịch ngôn ngữ kịch bản (sử dụng MSScript) và một tài nguyên của các hàm công cụ khác nhau cho các ngôn ngữ kịch bản khác. Nó đã được gợi ý rằng tôi thử chuyển đổi nó sang .NET.

Việc này có hiệu quả không, hoặc tôi sẽ chia tách một mục thành hai?

Trả lời

4

Dịch vụ doanh nghiệp sẽ cho phép bạn thực hiện điều đó. Bạn có thể chạy một thành phần COM như: quá trình

  • Một dllhost
  • Một dịch vụ
  • Một thư viện InProc (điều này đang trong quá trình tương tự như mã khác của bạn)

Có rất nhiều ví dụ trên internet về những điều này. Những gì nó đi xuống đến là:

  • Trang trí lớp học của bạn mà bạn cần phải tiếp xúc với COM với giao diện
  • Linh kiện mà bạn muốn lưu trữ cần phải được derrived từ ServicedComponent
  • Trang trí giao diện của bạn với một GuidAttribute (sử dụng một Guid độc đáo)
  • Trang trí các giao diện và các lớp học được tiếp xúc với COM với một ComVisible (true) thuộc tính

Hope this helps.

3

Thư từ .NET là .NET Remoting cho .NET 2.0 và WCF cho 3.0+. Tuy nhiên, nếu bạn cần giao tiếp với các đối tượng COM, bạn phải tạo một đối tượng COM tiếp xúc. Có khá nhiều hướng dẫn ở đó cho điều đó.

1

Có một vài tùy chọn cho việc này; rõ ràng nhất là serviced components; điều này cho phép bạn lưu trữ mã được quản lý trong COM + để chạy nó trong một quy trình riêng biệt, nhưng bạn cần GAC/COM-có thể gọi được.

Các vấn đề liên quan