Làm thế nào một người tiếp cận phương pháp trưng bày cho mỗi phương thức mà API bao gồm một số lớp thông qua WCF mà không cần sử dụng dự án WCF.Tự động tạo dịch vụ WCF phía máy chủ tự động từ API hiện tại
Ví dụ, giả sử tôi có sau
public interface RainfallMonitor
{
[ExposeToWeb]
void RecordRainfall(string county, float rainfallInches);
[ExposeToWeb]
float GetTotalRainfall(string county);
void ClearRainfall(string county);
}
Tôi hiểu rằng tôi có thể tạo ra một thư viện dịch vụ WCF như bình thường và chỉ cần thêm một dịch vụ WCF gọi là "RainfallMonitor".
Điều tôi đang khám phá là ... có thể hợp lý bằng cách nào đó tạo ra tất cả mã liên quan WCF tại thời gian biên dịch cho toàn bộ API mà không thực sự tạo các dịch vụ WCF cho lớp học. Có thể sử dụng các thuộc tính như ExposeToWeb
để biểu thị phương thức nào hiển thị thông qua dịch vụ. Các kết quả sẽ hoạt động như thế này:
- Tạo/sửa đổi các lớp học trong dự án có tên
RainfallAPI
- Compile và có một dự án/dll được tạo ra gọi là
RainfallService
tự động.
Về cơ bản:
- Nếu đây là có thể tiếp cận những gì tôi có thể làm để thực sự thực hiện nó?
- Tôi có thể gặp phải những cạm bẫy nghiêm trọng nào?
- Có codebase hiện có mà làm điều gì đó tương tự như tôi có thể nhìn vào cảm hứng
Để làm rõ: Tôi không yêu cầu về tự động tạo stub client, tôi đang hỏi về việc tạo ra các dịch vụ trên phía máy chủ.
Tôi có thể nghĩ đến hai vấn đề tiềm ẩn ở phía trên đầu của tôi: 1) Quá tải phương thức không thể được ánh xạ 1: 1 thành nhiều OperationContracts (tên phải khác nhau). 2) Tất cả các kiểu phức tạp được sử dụng trong API phải được tuần tự hóa (ví dụ như [DataContracts]), vì vậy các tác giả API phải biết rằng API của chúng sẽ được hiển thị dưới dạng các dịch vụ WCF. – nodots