Tengo una biblioteca de clases con 2 clases públicas que heredan de una clase abstracta. En la clase abstracta, tengo un campo protegido que solo debería ser accesible para las clases heredadas. El tipo utilizado para el campo es el de una clase interna.Uso de un tipo interno utilizado como campo protegido
Por ejemplo tengo:
internal class MyInternalClass
{
...
}
public abstract class MyAbstractClass
{
protected MyInternalClass myField;
}
Ahora entiendo que esto no funcionará porque si una de las clases derivadas de la clase MyAbstract se extiende fuera de la asamblea, el acceso a myField sería ilegal.
Mi pregunta es cómo puedo hacer que las cosas funcionen mientras mantengo MyInternalClass interno (no debería ser accesible fuera del ensamblaje) y permitiendo que las clases dentro del ensamblaje extiendan MyAbstractClass con acceso a myField?
¿Debe ser la última clase ('abstracta')' pública'? –
Sí, debe ser. Las 2 clases que lo extienden son públicas. – zaq
posible duplicado de [¿Cómo hacer una propiedad protegida Y interna en C#?] (Http: // stackoverflow.com/questions/941104/how-to-make-a-property-protected-and-internal-in-c) – nawfal