cuốn sách gpt4 ai đã làm

c# — Gọi "từ xa" cục bộ bằng cách sử dụng tính năng từ xa .net?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 16:41:36 27 4
mua khóa gpt4 Nike

Tôi có một ứng dụng lớn sử dụng COM thông qua tính năng truy cập từ xa .net để thực hiện cuộc gọi từ cấp web đến cấp trung gian. Khởi động và chạy ở chế độ này rất chậm. Trên cả hai mặt của ranh giới COM là mã của chúng tôi.

Tôi muốn có thể (tùy chọn) chạy nó trong một quy trình duy nhất. Khá nhiều hành vi dựa vào các lệnh gọi tới ServicedComponents có tất cả các tham số của chúng được tuần tự hóa và các thay đổi được thực hiện đối với các đối tượng bên trong của thành phần không bị rò rỉ trừ khi tham số đó là tham số "ref".

Kế hoạch hiện tại của tôi là buộc ứng dụng quy trình kép này thành một quy trình mà không thay đổi quá nhiều mã bằng cách sử dụng ranh giới tầng giữa giả với tính năng điều khiển từ xa .net tùy chỉnh.

Nếu tôi thay đổi tất cả:

lớp BigComponent : ServiceComponent {
...
}

进入

[Thành phần giả]
lớp BigComponent : ContextBoundObject {
...
}

Sau đó, tôi có thể viết một ContextAttribution tùy chỉnh để giả mạo ranh giới quy trình và làm cho các tham số tự tuần tự hóa:

[AttributionUsage(AttributionTargets.Class)]
lớp công khai FakeComponentAttribution:
Thuộc tính bối cảnh,
IContributeServerContextSink
{
...có rất nhiều thứ ở đây
}

theo http://msdn.microsoft.com/en-us/magazine/cc164165.aspx

Bây giờ tất cả đều hoạt động tốt và cho đến nay tôi có thể chặn các cuộc gọi đến tất cả các phương thức của các lớp này. Tuy nhiên, tôi chỉ có thể thấy IMethodCallMessage.Args trong cuộc gọi IMessageSink.ProcessMessage - Tôi dường như không thể thay thế chúng bằng đối tượng mà tôi chọn.

Bất cứ khi nào tôi thay đổi một mục trong mảng IMethodCallMessage.Args, những thay đổi của tôi sẽ bị bỏ qua. Theo như tôi biết trong Reflector, giao diện này là một trình bao bọc xung quanh một đối tượng cục bộ trong chính thời gian chạy, tôi không thể ghi vào đối tượng này mà chỉ đọc nó.

Làm cách nào để sửa đổi các tham số của lệnh gọi phương thức trong điều khiển từ xa .net?

Tôi có cần triển khai kênh của riêng mình không? Có kênh hướng dẫn "địa phương" nào mà tôi có thể tham khảo không?

Mục tiêu của tôi là làm cho các thành phần này hoạt động giống như các đối tượng từ xa (trong đó tất cả các tham số của chúng được tuần tự hóa khi vào phương thức và các giá trị trả về của chúng được tuần tự hóa khi thoát), nhưng điểm cuối từ xa lại thực hiện cùng một quy trình.

câu trả lời hay nhất

Khi mảng tham số được truyền IMtin nhắnchìm Tôi chưa tìm được cách chỉnh sửa mảng tham số.

Cuối cùng, tôi phải làm cho lớp đối tượng tham số nhận thức được vấn đề và triển khai một giao diện mớiIFakeRemotingAware. Điều này cho phép các tham số đối tượng phức tạp thể hiện hành vi chuyển tiếp theo giá trị do tuần tự hóa/giải tuần tự hóa khi sử dụng tính năng từ xa, để mô phỏng hành vi khi sử dụng tính năng từ xa giả.

Giao diện này có hai phương thức:NhậpGiảTừ Xa khiến đối tượng lưu vào bộ đệm một bản sao cục bộ về trạng thái của nó và Rời khỏigiảtừ xa Làm cho đối tượng khôi phục trạng thái từ bộ đệm.

Về C# - sử dụng tính năng truy cập từ xa .net để gọi "điều khiển từ xa" cục bộ? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/7366410/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress