Ich habe eine Klasse deklariert als:
public class Foo<T> : Panel where T : Control, IFooNode , new()
{
...
}
Ich habe es von Hand hinzugefügt, um es zu testen, aber ich brauche schließlich etwas, das im Forms Designer angezeigt werden kann. Der Forms-Designer mag das nicht, er sagt:
Could not find type 'FooTestNameSpace.Foo'.
Please make sure that the assembly that
contains this type is referenced.
If this type is a part of your development project, make
sure that the project has been successfully built.
Interessanterweise erhalte ich auch eine Warnung, die ähnlich ist, aber den generischen Typ enthält, den ich in meiner Deklaration der Variablen verwendet habe. Die Warnung lautet:
Could not find type 'FooTestNameSpace.Foo<FooTestNameSpace.FooNodeType>'.
Please make sure that the assembly that contains this type is referenced.
If this type is a part of your development project,
make sure that the project has been successfully built.
Die Deklaration in meiner einfachen Klasse Form1 lautet:
private FooTestNameSpace.Foo myFoo;
(FooNodeType ist eigentlich nur eine Unterklasse von Label, die eine Hilfseigenschaft hat, die noch nicht verwendet wird; sie implementiert IFooNode).
Also meine Frage... Wie kann ich bei dieser Art von Einrichtung erreichen, dass Foo im Formular-Designer angezeigt wird, oder zumindest, dass er erkennt, dass Foo echt ist? Gibt es ein Designer-Attribut, das dies handhaben kann? Es ist mir eigentlich egal, ob mein Foo-Steuerelement als leeres Feld erscheint, solange es überhaupt erscheint!