Jag har stött på ett problem efter att jag gått över från VS.Net 2003 till VS.Net 2005 som jag misstänker beror på att formulär numera delas upp i en cs- och en designer.cs-fil. När jag började projektet för ett antal år sedan så tyckte jag att det var en bra idé att låta alla formulär ärva från ett eget basformulär där jag kunde lägga generell kod som skall gälla alla formulär i applikationen. hm Problemet löst... ok tackPartial class och Visual Inheritance (över assemblygräns)
Detta har fungerat i stort sett utan problem, tills nu. När jag nu skapar ett nytt Inherited Windows Form och låter detta ärva från mitt basformulär så klagar kompilatorn på designer.cs-klassen : "No suitable method to override : Dispose"
Kan det vara så att eftersom mitt basformulär ligger i ett separat projekt (annan assembly) så fungerar inte VI p g a att partial-klassers restriktioner?
Här kommer ett förenklat kodexempel. Observera att frmBaseForm ärver från System.Windows.Forms så den implementerar IDisposable så det skall definitivt finnas en Dispose-metod att "overrida".
Jag har testat att redigera frmTest.designer.cs (mot bättre vetande, rör inte automatgenerad kod!!!) så här :
partial class frmTimeEstimateTypes : frmBaseForm
och så här :
partial class frmTimeEstimateTypes : IDisposable
men det ger bara ännu fler kompileringsfel.
// frmTest.cs
public partial class frmTest : frmBaseForm
{ }
// frmTest.designer.cs
partial class frmTimeEstimateTypes
{
// Här smäller den...
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
}
Sv: Partial class och Visual Inheritance (över assemblygräns)
har inte konverterat eftersom vår struktur är rätt komplex
låter som vi ska låta bli då :(Sv: Partial class och Visual Inheritance (över assemblygräns)
I väntan på att någon skulle komma med en smart lösning så tänkte jag att jag tar bort arvet så länge (eller snarare ersätter det med System.Windows.Forms.Form) så att jag kommer vidare, men då kvarstod problemet så det hade inte alls med min tankegångar ovan att göra.
I stället så är det så att jag hade redigerat namespacet i cs-filen men glömt att göra motsvarande ändring i designer.cs...*suck*
Så du kan vara lugn Östen, det verkar som att allt är ok :-)Sv:Partial class och Visual Inheritance (över assemblygräns)
då så
då kör vi!
what could possible go wrong? :P