W jaki sposób osoba może ujawnić metodę dla metody API składającej się z kilku klas za pośrednictwem WCF bez użycia projektu WCF.Generowanie usługi WCF po stronie serwera automatycznie z istniejącego interfejsu API
Na przykład, powiedzmy, że mam następujące
public interface RainfallMonitor
{
[ExposeToWeb]
void RecordRainfall(string county, float rainfallInches);
[ExposeToWeb]
float GetTotalRainfall(string county);
void ClearRainfall(string county);
}
Rozumiem mogę utworzyć bibliotekę usług WCF jak zwykle i po prostu dodać usługę WCF nazwie „RainfallMonitor”.
Co badam jest ... jest to możliwe/uzasadnione, aby w jakiś sposób wygenerować cały kod związany z WCF w czasie kompilacji dla całego API bez faktycznego wykonywania usług WCF klas. Być może za pomocą atrybutów, takich jak ExposeToWeb
, można wskazać metody, które należy ujawnić za pośrednictwem usług. Powstały będzie funkcjonować tak:
- Tworzenie/modyfikowanie klas w projekcie o nazwie
RainfallAPI
- kompilacji i mieć inny projekt/dll generowane nazywa
RainfallService
automatycznie.
Zasadniczo:
- Jeśli jest to możliwe, co podejście mogę podjąć, aby rzeczywiście wdrożyć go?
- Do jakich poważnych pułapek mogłem wpaść?
- Czy istnieje istniejących codebase że robi coś podobnego mógłbym zajrzeć do inspiracji
Dla wyjaśnienia: Nie pytam o auto-generowanie niedopałek klienta, pytam o tworzeniu usług po stronie serwera.
Mogę wymyślić dwa potencjalne problemy z mojej głowy: 1) Przeciążenia metod nie można odwzorować 1: 1 na wiele operacji ContractContracts (nazwy muszą być różne). 2) Wszystkie typy złożone używane w interfejsie API muszą być przekształcalne do postaci szeregowej (na przykład [Kontakty danych]), więc autorzy interfejsów API muszą mieć świadomość, że ich interfejs API zostanie ujawniony jako usługi WCF. – nodots