2010-03-19 35 views

Trả lời

19

Nếu bạn sử dụng công cụ Add Service Reference của Visual Studio hoặc công cụ svcutil.exe, có thể bạn sẽ không bao giờ nhìn thấy ChannelFactory.

Về cơ bản, tạo proxy client-side cho một dịch vụ WCF là một quá trình hai bước:

  • tạo thích hợp ChannelFactory<T> cho hợp đồng dịch vụ cụ thể của bạn
  • cho rằng nhà máy kênh, tạo ra các giao tiếp thực tế kênh giữa khách hàng và dịch vụ

Nếu bạn có quyền kiểm soát cả hai đầu của dây và bạn có thể đặt hợp đồng dịch vụ và dữ liệu vào một hội đồng riêng biệt, bạn có thể tách rời bước hai bước này ocess và xử lý nó bằng tay:

  • tạo ChannelFactory<IMyService> một lần, đây là một hoạt động khá phức tạp và tốn thời gian, vì vậy nếu bao giờ có thể, cố gắng làm chỉ này khi thực sự cần thiết, và sau đó bộ nhớ cache nhà máy kênh cho sau đó tái sử dụng

  • tạo kênh thực tế sử dụng nhà máy kênh bất cứ khi nào bạn cần phải giao tiếp với máy chủ

Đó là một cấu trúc rất cụ thể đối với các dịch vụ WCF, vì vậy tôi không bao giờ nghĩ rằng bạn sẽ sử dụng nó bên ngoài Phạm vi WCF.

5

Kênh Lớp nhà máy được sử dụng để xây dựng kênh giữa khách hàng và dịch vụ mà không cần proxy. Trong một số trường hợp, bạn có thể có một dịch vụ được ràng buộc chặt chẽ với ứng dụng khách. Trong trường hợp này, bạn có thể tham khảo trực tiếp giao diện DLL và sử dụng ChannelFactory để gọi các phương thức của bạn bằng cách sử dụng nó.

Tôi khuyên bạn cũng nên chuyển qua sự khác biệt giữa nhà cung cấp Proxy và kênh. điều này sẽ giúp bạn hiểu về cách sử dụng chính xác Nhà máy kênh. Liên kết sau có thể giúp bạn http://ashishkhandelwal.arkutil.com/wcf/channelfactory-over-proxy-class-in-wcf/

+0

Tôi đã thử liên kết đó và nó không có gì ngoài quảng cáo và như vậy. – CodeChops

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