Klasse unzugänglich ist aufgrund seiner Schutzstufe
Habe ich drei Klassen. Sie alle gehören zum gleichen Namensraum. hier sind die Grundlagen der drei Klassen.
//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);
}
}
}
Bin ich immer die folgenden Fehler
'StubGenerator.PropGenerator.Die Methode' unzugänglich ist aufgrund seiner Schutzstufe
bezieht sich auf folgende Zeile in der FBlock.cs-Datei
private List<Method> pMethods;
und
'StubGenerator.PropGenerator.Die Methode' unzugänglich ist aufgrund seiner Schutzstufe
bezieht sich auf folgende Zeile in der FBlock.cs-Datei
public Method AddMethod(string aName)
und
Inkonsistent accessibility: return type 'StubGenerator.PropGenerator.Methode' ist weniger zugreifbar als Methode " StubGenerator.PropGenerator.FBlock.AddMethod(string)'
bezieht sich auf folgende Zeile in der FBlock.cs-Datei
public Method AddMethod(string aName)
machen Methode die Klasse ist nicht öffentlich, die Fehler beheben. Ich kann nicht herausfinden, warum habe ich nicht den Fehler beim Aufruf der Property-Klasse. Und ich verstehe nicht, warum die Methode der Klasse öffentlichkeit nicht das problem zu beheben.
Irgendwelche Ideen?
Bearbeitet zu Fragen. könnte es irgendeine Einstellung auf die Datei, die Ursachen dieser?
InformationsquelleAutor der Frage scott | 2010-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste Sache, versuchen Sie eine vollständige Neuerstellung. Clean und build (oder einfach neu erstellen). Jeder einmal in eine Weile, löst sich bizarre bauen Fragen für mich.
Weiter, kommentieren Sie den rest des Codes, die nicht in Ihrem Beispiel, das Sie gebucht haben. Kompilieren Sie. Funktioniert das?
Falls ja, starten Sie das hinzufügen von Segmenten zurück, bis man bricht.
Wenn nicht, machen alle Klassen
public
und versuchen Sie es erneut.Wenn das dann immer noch nicht, vielleicht versuchen Sie, die abgespeckte Klassen in die gleiche Datei-und Umbau. An diesem Punkt, gäbe es absolut keinen Grund für Probleme beim Zugang. Wenn das immer noch nicht funktioniert, bis Zimmerei.
InformationsquelleAutor der Antwort Andy_Vulhop
Gab es ein Projekt, dass verwendet verknüpfte Dateien. Ich brauchte, um hinzuzufügen, die Methode.cs-Datei in das Projekt als einer verknüpften Datei als gut, da die FBlock.cs-Datei war es. Ich habe noch nie gehört von verknüpften Dateien, bevor, ich wusste gar nicht, dass war möglich.
InformationsquelleAutor der Antwort scott
Versuchen Sie, den folgenden code zu der Klasse, die Sie verwenden möchten
InformationsquelleAutor der Antwort Gabriela
Kann es auch sein, dass die Bibliothek mit der Klasse in Frage, ist nicht richtig, mit einem starken Namen signiert.
InformationsquelleAutor der Antwort Alexey
Den code, den Sie geschrieben hat nicht zu den Fehlermeldungen, die Sie verstehen. Sie sollten ein (kleines) Beispiel, dass tatsächlich weist das problem.
InformationsquelleAutor der Antwort Timwi
Alle Ihre Klassen sind
internal
standardmäßigKennzeichnung
public
nicht den trick tun.Sind Sie sicher, dass Sie nicht zwei Klassen " - Methode, und vielleicht sind darunter auch die falsche Methode der Klasse?
InformationsquelleAutor der Antwort Arcturus
Ich vermute
public Method AddMethod(string aName)
definiert ist, auf eine öffentliche Schnittstelle, die FBlock implementiert. Verbraucher, die Schnittstellen sind nicht garantiert, um den Zugang zu der Methode.InformationsquelleAutor der Antwort Bubblewrap
Hallo Sie müssen die Schaltfläche Eigenschaften, von privat zu öffentlich.
Ändern können Sie Unter dem Button >> Eigenschaften >> Design >> Modifikatoren >> "öffentlichkeit"
Einmal ändern Sie die Schutz-Fehler Weg.
Budi
InformationsquelleAutor der Antwort Budi