Tengo tres clases. todos son parte del mismo espacio de nombres. aquí están los conceptos básicos de las tres clases.La clase es inaccesible debido a su nivel de protección
//FBlock.cs
namespace StubGenerator.PropGenerator
{
class FBlock : IDesignRegionInserts, IFormRegionInserts, IAPIRegionInserts, IConfigurationInserts, ISoapProxyClientInserts, ISoapProxyServiceInserts
{
private List<Property> pProperties;
private List<Method> pMethods;
public FBlock(string aFBlockName)
{
pProperties = new List<Property>();
pMethods = new List<Method>();
}
public Property AddProperty(string aName)
{
Property loProp = new Property(this, aName, pProperties.Count);
pProperties.Add(loProp);
return loProp;
}
public Method AddMethod(string aName)
{
Method loMeth = new Method(this, aName);
pMethods.Add(loMeth);
return loMeth;
}
}
//Method.cs
namespace StubGenerator.PropGenerator
{
class Method : IPropertyName
{
private List<StubGenerator.PropGenerator.PropertyAttribute> pPropertyAttributes;
private string pName;
private string pFBlockName;
public Method(FBlock aFBlock,string aName)
{
pPropertyAttributes = new List<PropertyAttribute>();
pName = aName;
pFBlockName = aFBlock.Name;
}
}
}
//Property.cs
namespace StubGenerator.PropGenerator
{
class Property : StubGenerator.PropGenerator.IPropertyName, StubGenerator.PropGenerator.IDesignRegionInserts, StubGenerator.PropGenerator.IFormRegionInserts, IAPIRegionInserts, IConfigurationInserts, ISoapProxyClientInserts, ISoapProxyServiceInserts
{
private string pName;
private string pExpandedName;
private string pFBlockInitials;
private Group pPropertyGroup;
private FlowLayoutPanel pGroupFlowPanel;
private Button pUpdateButton;
private CheckBox pShowProperty;
private string pFBlockName;
public Property(FBlock aFBlock, string aName, int aIndex)
{
pPropertyAttributes = new List<PropertyAttribute>();
pFBlockName = aFBlock.FBlockName;
ExpandName();
GetInitials();
pShowProperty = new CheckBox(this, 10, (aIndex + 1) * 20, aIndex);
pPropertyGroup = new Group(this);
pGroupFlowPanel = new FlowLayoutPanel(this);
pUpdateButton = new Button(this, 10, 18, aIndex);
}
}
}
estoy recibiendo los errores siguientes
'StubGenerator.PropGenerator.Method' es inaccesible debido a su nivel de protección
que se refiere a la siguiente línea en el FBlock. archivo cs
private List<Method> pMethods;
y
'StubGenerator.PropGenerator.Method' es inaccesible debido a su nivel de protección
que se refiere a la siguiente línea en el archivo los FBlock.cs
public Method AddMethod(string aName)
y
Accesibilidad incoherente: el tipo de devolución 'StubGenerator.PropGenerator.Method' es menos accesible que el método 'StubGenerator.PropGenerator .FBlock.AddMethod (cadena)'
que se refiere a la siguiente línea en los FBlock.cs presentar
public Method AddMethod(string aName)
hacer público el método de clase no resuelve los errores. No puedo entender por qué no obtengo los errores cuando llamo a la clase Propiedad. Y no entiendo por qué hacer que la clase Method sea pública no soluciona el problema.
¿Alguna idea?
Editado para preguntar. ¿Podría haber alguna configuración en el archivo que causa esto?
¿Cambia algo si declaras explícitamente públicas las clases principales? – Bobby
El constructor 'Property' hace referencia a un campo' pPropertyAttributes' que no existe. Es evidente que no ha publicado el código que produce los errores que reclama. – Timwi
¿Es un error de copiar y pegar que falta un} al final de la definición de FBlock? Como está listado actualmente, la primera declaración del espacio de nombres no está cerrada. – epotter