Page 1 of 1

Die C#-Kompilierung schlägt fehl, wenn auf eine Methode in einer Teilklasse verwiesen wird

Posted: 20 Dec 2024, 22:40
by Anonymous
Ich erhalte derzeit beim Erstellen meines C#-Projekts einen CS1061-Fehler. Dieser Fehler tritt nur an einer ganz bestimmten Stelle in meinem Code auf.

Fehler CS1061 Beschreibung: „Typ“ enthält keine Definition für „Mitglied“ und keine Erweiterungsmethode „Name“. ' Akzeptiert, konnte ein erstes Argument vom Typ „Typ“ gefunden werden (fehlt Ihnen eine using-Direktive oder eine Assembly-Referenz?).

Ich habe zwei Dateien , eine main.cs und eine Partial.cs. „partial.cs ist eine Teilklasse von main.cs. main.cs enthält zwei Klassen, die Hauptklasse und die Hilfsklasse.

Der Fehler wird ausgelöst, wenn die Hilfsklasse die Hauptklasse instanziiert und eine Methode der Hauptklasse aufruft das ist in der Datei „partial.cs“ definiert.

Nach meinem Verständnis sollte dies kein Problem darstellen. Die Hauptklasse ist auf die beiden Dateien aufgeteilt, aber während der Kompilierungszeit werden die Teilklassen kombiniert.

Diese Frage scheint sehr ähnlich zu sein, aber seine Lösung funktioniert für mich nicht. Beide Dateien sind im Projekt enthalten. ASP.NET C#-Teilklasse in separaten Dateien funktioniert nicht CS1061

Irgendwelche Ideen?

main.cs

namespace Price.WS
{
public partial class Main : BaseWebService
{
public Main()
{
//CODEGEN: This call is required by the ASP.NET Web Services Designer
InitializeComponent();
}

private DataSet _TestMethod()
{
//Stuff
}
}

public class Helper: IExchangeable
{
public void Test()
{
using (Main main = new Main())
{
main.TestMethod(); //This is where the error gets thrown. The compiler doesn't see TestMethod() as a method of main
}
}
}
}


Partial.cs:

namespace Price.WS
{
public partial class Main : BaseWebService
{
[WebMethod()]
public DataSet TestMethod()
{
//Stuff
return _TestMethod();
//Stuff
}
}
}


Bearbeiten: Es scheint, dass es nicht spezifisch für Methoden ist, die in Hilfsklassen aufgerufen werden. Während des Builds in einer separaten Klasse wird ein weiterer Fehler ausgegeben. Diese Klasse ist auf die gleiche Weise wie die letzte eingerichtet, verfügt jedoch nicht über die zusätzliche Hilfsklasse. Dies schlägt fehl, wenn der Hauptteil der Teilklasse eine in der Teilklasse in einer anderen Datei deklarierte Methode aufruft.