Ich benutze Interfaces in diesem Fall meist als Handle zu einer unveränderlichen Instanz eines Objekts. Das Problem besteht darin, dass verschachtelte Schnittstellen in C# nicht zulässig sind. Hier ist der Code:Alternativen zu verschachtelten Interfaces (in C# nicht möglich)
public interface ICountry
{
ICountryInfo Info { get; }
// Nested interface results in error message:
// Error 13 'ICountryInfo': interfaces cannot declare types
public interface ICountryInfo
{
int Population { get; }
string Note { get; }
}
}
public class Country : ICountry
{
CountryInfo Info { get; set; }
public class CountryInfo : ICountry.ICountryInfo
{
int Population { get; set; }
string Note { get; set; }
.....
}
.....
}
Ich suche eine Alternative, hätte jemand eine Lösung?
Gibt es einen bestimmten Grund, warum Sie wollen, dass "ICountryInfo" verschachtelt wird? – AakashM
Ja, die Anwendung enthält über 100 Klassen mit vielen verschachtelten Klassen, die die gleichen Namen tragen. Es ist viel sauberer, wenn ich diese Einstellung behalte. Wie für die Verwendung von Schnittstellen ist es eine Möglichkeit, ihre unveränderlichen Gegenstücke zu erhalten. Nachdem die Objekte instanziiert wurden, befasst sich die Hauptanwendung hauptsächlich mit ihren entsprechenden Schnittstellen, wobei das Abhängigkeitsinjektionsmuster verwendet wird. – ericdes