Mam minimalny interfejs i będę miał do czynienia z kolekcją obiektów, których klasy implementują ten interfejs. Kolekcja (wraz z powiązaną z nią funkcjonalnością) nie przejmuje się żadnymi szczegółami tych obiektów poza ich nazwą, możliwością ich konwersji do formatu XML i możliwością analizowania ich z XML.Wymaganie implementacji interfejsu do statycznej metody analizy składni
Przyszłe implementacje interfejsu znacznie poprawią elementy kolekcji i oczywiście zaimplementują własne metody Parse i ToXml (które będą używane przez kolekcję do odpowiedniego analizowania tych elementów po napotkaniu).
Niestety, nie mogę wyświetlić statycznej metody analizy w interfejsie (przeczytałem thesethreequestions). Nie ma sensu, aby metoda Parse wymagała instancji. Czy jest jakiś sposób, aby wymagać, aby wszystkie implementacje interfejsu miały metodę statycznej analizy parse?
public interface IFoo
{
string Name { get; }
string ToXml();
static IFoo Parse(string xml); // Not allowed - any alternatives?
}
Dlaczego chcesz, aby była to statyczna implementacja? Statyczna ma być wspólną metodą pomiędzy różnymi implementacjami (bez zależności od bieżącego obiektu, tylko z innymi statystykami), ale interfejs powinien informować klasę zepsutą, że coś musi zostać zaimplementowane. Myślę, że "statyczny" nie jest tym, czego chcesz tutaj ... – Beachwalker
Każda klasa implementująca ten interfejs będzie musiała analizować instancje z XML, ale każdy będzie analizował bardzo różnie. Sam parsowanie jest unikalne dla konkretnej klasy. – yoozer8
... więc "statyczny" nie jest tym, czego oczekujesz od metody Parse – Beachwalker