Estoy usando interfaces en este caso principalmente como un controlador para una instancia inmutable de un objeto. El problema es que las interfaces anidadas en C# no están permitidas. Aquí está el código:Alternativas a las interfaces anidadas (no es posible en C#)
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; }
.....
}
.....
}
Estoy buscando una alternativa, nadie tendría una solución?
¿Hay algún motivo en particular por el que desee 'anotar ICountryInfo''? – AakashM
Sí, la aplicación contiene más de 100 clases con muchas clases anidadas que llevan los mismos nombres. Es mucho más limpio si conservo esa configuración. En cuanto al uso de interfaces, es una forma de obtener sus contrapartes inmutables. Una vez que los objetos han sido instanciados, la aplicación principal trata principalmente con sus interfaces correspondientes usando el patrón de inyección de dependencia. – ericdes