hej! Du har alltså en abstraktklass som heter DataBaseClass som du vill kunna initieras? Denna abstraktaklass har en massa metoder som är protected? Du vill alltså skapa en klass som ärver från DataBaseClass så att du kan komma åt metoderna som har dekleras som protected? Allt är rätt uppfattat. Det är en gammal klass som av någon anledning (alla skall kunna känna igen sig) skall återanvändas.Göra protected metoder från base class till public i subclass
Jag skall använda mig av metoder i en abstract base class, som alla är protected. D.v.s de måste ärvas till en sub class och där deklareras som public för att jag skall kunna instansiera dem utifrån en wrapper.
I base-klassen ser en av metoderna ut så här:
public abstract class DataBaseClass {
protected DataSet RunStoredProcedure(string spName, SqlParameter parameter) {
try {
SqlParameter[] parameters = new SqlParameter[1];
parameters[0] = parameter;
return RunStoredProcedure(spName, parameters);
}
catch (Exception) {
throw;
}
}
}
Hur skall det se ut i min sub class för att omvandla metoden till public, och hur skulle instansieringen i min wrapper-class kunna se ut?
mvh
henrikSv: Göra protected metoder från base class till public i subclass
I din subklass får du helt enkelt implementera publika metoder som använder sig av basklassens metoder som är protected.
public class DataSubClass
{
public DataSet StoredProcedure(string spName, SqlParameter parameter)
{
return base.RunStoredProcedure(spName, parameter);
}
}
Är inte hundra på om man kan använda samma namn på metoden här, eftersom den metoden är redan deklerad innan med samma parametrar (fastän med olika åtgång).
Men jag tycker det är lite skumt att du vill komma åt metoder som är deklarerade som protected, känns som det är lite skum design. Det kanske är en gammal klass som ska återanvändas? I vilket fall så önskar jag dig lycka till.
mvh Joakim.
Sv:Göra protected metoder från base class till public i subclass