2011-01-06 18 views
0

Ich habe eine Anwendung, bestehend aus zwei asp.net-Projekten. Und ich habe eine BasePage, die System.Web.UI.Page erbt und die Klasse einige Kernlogik habe, die ich auf allen meinen Seiten benötige (implementiert in BasePage.cs). So erben alle meine Seiten dieses BasePage.cs. Nun kann ein Webservice die gleiche Klasse erben, abgesehen von der normalen Webservice-Klasse System.Web.Services.WebServiceKann eine Webservice-Klasse asp.net-Seitenklasse erben

Antwort

2

Mehrfachvererbung wird im .NET-Framework nicht unterstützt. Und selbst wenn es so wäre, würde diese Art der Implementierung kaum als gute Praxis bezeichnet werden.

Alle Methoden, die von den Webseiten aufgerufen werden, sowie die Webservice-Seiten sollten in zusätzliche Klassen eingeteilt werden.

0

Ansichten und Dienste sollten vollständig getrennt sein. Dienste sollten nichts über Seiten wissen. Ich würde sagen, Sie sollten nicht, wenn Sie könnten.

0

Normalerweise erben alle asp.net-Webseiten "System.Web.UI.Page". Aber in Ihrem Fall haben Sie eine Basisklasse, die die Klasse "System.Web.UI.Page" erbt, dann verwenden Sie diese Basisklasse für alle asp.net Webseiten keine Probleme. Die Basisklasse des Web-Service lautet "System.Web.Services.WebService". Wenn Sie also einen Web-Service verwenden, sollten Sie die Klasse dieses Web-Service erben. Sie können Ihre Basisklasse (BasePage.cs) nicht für Ihren Webdienst verwenden.

2

Jede Logik, die sowohl von einer Webseite als auch von einem Webdienst verwendet werden kann, sollte in einer separaten Klasse enthalten sein, die von beiden verwendet werden kann. Eine solche Logik darf nicht davon abhängen, Teil einer Benutzeroberfläche zu sein.

Setzen Sie es in eine statische Klasse und haben Sie sowohl den Dienst als auch die Seiten verwenden.