CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 494

494
Chương 12: Dịch vụ Web XML và Remoting

Để chuyển dữ liệu đến đối tượng ở xa (hoặc chuyển dữ liệu từ đối tượng ở xa về),
các kiểu dữ liệu dùng cho các tham số và giá trị trả về phải là khả-tuần-tự-hóa
(serializable
—tất cả các kiểu cơ bản đều có tính chất này). Nếu muốn sử dụng
các lớp tùy biến để chuyển dữ liệu, bạn phải làm cho các lớp này trở thành khả-
tuần-tự-hóa bằng cách áp dụng đặc tính

Serializable

(xem mục 16.1 để biết

thêm chi tiết).

8.

8.

Đăng ký t t c các l p kh -truy-xu t-t -xa trong m t assembly

ấ ả

ấ ừ

Đăng ký t t c các l p kh -truy-xu t-t -xa trong m t assembly

ấ ả

ấ ừ

Bạn muốn đăng ký tất cả các lớp khả-truy-xuất-từ-xa được định nghĩa trong một
assembly mà không phải chỉ định chúng trong file cấu hình.

Nạp assembly (có chứa các lớp khả-truy-xuất-từ-xa) bằng cơ chế phản chiếu
(reflection
). Duyệt qua tất cả các kiểu trong đó và sử dụng phương thức

RemotingConfiguration.RegisterWellKnownServiceType

để đăng ký mỗi lớp khả-

truy-xuất-từ-xa.

.NET cho phép bạn đăng ký các lớp khả-truy-xuất-từ-xa một cách dễ dàng thông qua việc viết
file cấu hình hoặc viết mã chương trình. Xét ví dụ trong mục 12.7. Để đăng ký bằng mã
chương trình, trước hết bạn phải gỡ bỏ những khai báo lớp trong file cấu hình trên server như
sau:

<configuration>

<system.runtime.remoting>

<application>

<channels>

<channel ref="tcp" port="9080" />

</channels>

</application>

</system.runtime.remoting>

</configuration>

Bây giờ, bạn có thể sử dụng kỹ thuật phản chiếu kết hợp với phương thức

RegisterWellKnownServiceType

để đăng ký tất cả các lớp khả-truy-xuất-từ-xa. Tuy nhiên, bạn

cần thêm một tham chiếu đến System.Runtime.Remoting.dll. Đoạn mã dưới đây tìm các lớp
khả-truy-xuất-từ-xa trong RemoteObject.dll và đăng ký mỗi lớp:

using System;

using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.