Tôi đang cố gắng viết một số mã trong C# sẽ gọi một dịch vụ WCF khi đang di chuyển bằng cách nhập WSDL, kiểm tra nó và sau đó thực hiện các cuộc gọi đến nó một cách tự động.Gọi một dịch vụ WCF mà không cần tạo một Assembly
Dịch vụ tôi gọi có thể thay đổi theo thời gian - vì vậy nếu tôi muốn khách hàng biết về các phương thức mới và thông số đầu vào mới và tham số đầu ra cho cuộc gọi mà không cần xây dựng lại máy khách.
Một giải pháp khả thi cho việc này là nhập và biên dịch tham chiếu dịch vụ khi đang di chuyển.
được nêu ở đây: Creating an assembly on the fly from a WSDL
Tôi muốn tránh việc tạo ra một lắp ráp và sau đó phản ánh qua nó nếu có thể.
Tôi đã xem mã của proxy động trong liên kết và họ sử dụng lớp khung làm việc để nhập. Lớp này là WsdlImporter
. Vì vậy, tôi đã nghĩ tuyệt vời - tôi có thể sử dụng nó và kiểm tra lược đồ WSDL và xác định những gì các cuộc gọi có mặt và những gì đầu vào và đầu ra có sẵn.
Vấn đề là thiếu thông tin loại trong các đối tượng MessagePartDescription
mà các đối tượng WsdlImporter
tạo. Dường như đây là thiếu because it cannot find the types yet - see the response to the question from Brian.
Vì vậy, bất kỳ lời khuyên nào về cách tôi nên tiến hành? Tôi hoàn toàn đi sai đường ở đây à?
Bạn có thể cho một ví dụ thực tế về cách thức này sẽ hữu ích? Có giao diện người dùng nào được trình bày cho người dùng của ứng dụng khách của bạn cho phép họ chọn các phương thức để gọi, có lẽ một số loại lịch biểu hay gì đó không? Ngoài ra, có gì sai với việc tạo ra một hội đồng trên bay? Nghe có vẻ khá đơn giản. Bạn đang hình dung một cái gì đó đơn giản hơn là phản ánh? Tôi gặp khó khăn khi chụp ảnh. – JohnOpincar
Điều này sẽ được sử dụng để gọi một dịch vụ WF. Luồng công việc có thể thay đổi - các bước có thể được thêm vào/gỡ bỏ, v.v. – Neil
@JohnOpincar - Phản đối của tôi không phản ánh - đó là việc biên dịch trên máy bay. Dường như nó là một cách tiếp cận có thể gây ra vấn đề bảo mật tại một số điểm, và * có thể * mong manh. Cũng có vẻ lạ với tôi khi tất cả thông tin nằm trong WSDL và cho rằng cuối cùng tất cả các cuộc gọi sẽ được sắp xếp thông qua một cái gì đó trông rất giống một API năng động, xây dựng một lớp động với sự phản chiếu trên một lớp tĩnh được tạo động mà sau đó ánh xạ tới một lớp động là hơi nhiều. Tạo lắp ráp trên bay là kế hoạch dự phòng của tôi. – Neil