Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az összetevő olyan osztály, amely megvalósítja az System.ComponentModel.IComponent interfészt, vagy közvetlenül vagy közvetve olyan osztályból származik, amely megvalósítja az IComponent-t. A .NET-összetevők olyan objektumok, amelyek újrafelhasználhatók, más objektumokkal is kommunikálhatnak, és szabályozhatják a külső erőforrásokat és a tervezési idő támogatását.
Az összetevők fontos jellemzője, hogy tervezhetők, ami azt jelenti, hogy egy összetevőnek számító osztály használható a Visual Studio integrált fejlesztési környezetében. Egy összetevő hozzáadható az eszköztárhoz, fogd és vidd módszerrel áthúzható egy űrlapra, és kezelhető a tervezőfelületen. Az összetevők alapszintű tervezési idejének támogatása a .NET-be van beépítve. Az összetevők fejlesztőjének nem kell további munkát végeznie az alapszintű tervezési idő funkció előnyeinek kihasználásához.
A vezérlők hasonlóak az összetevőkhöz, mivel mindkettő tervezhető. A vezérlők azonban felhasználói felületet biztosítanak, míg egy összetevő nem. A vezérlőknek az egyik alapkontroll-osztályból kell származnia: Control vagy Control.
Mikor kell összetevőt létrehozni?
Ha az osztályt tervezőfelületen (például Windows Forms vagy Web Forms Designer) fogja használni, de nincs felhasználói felülete, annak összetevőnek kell lennie, és implementálnia IComponentkell, vagy olyan osztályból kell származnia, amely közvetlenül vagy közvetve implementálható IComponent.
Az Component és MarshalByValueComponent az osztályok a IComponent felület alapvető implementációi. Az osztályok közötti fő különbség az, hogy az Component osztályt hivatkozással marshallolják, míg IComponent érték szerint marshallolják. Az alábbi lista átfogó irányelveket tartalmaz a megvalósítók számára.
Ha az összetevőt referencia alapján kell elrendezni, származtathatja a következőből Component: .
Ha az összetevőt érték szerint kell elrendezni, származtasd a következőből MarshalByValueComponent: .
Ha az összetevő egyetlen öröklés miatt nem tud az egyik alapvető megvalósításból származni, valósítsa meg az IComponent-t.
Összetevőosztályok
A System.ComponentModel névtér olyan osztályokat biztosít, amelyek az összetevők és vezérlők futásidejének és tervezési idejének megvalósításához használhatók. Ez a névtér tartalmazza az attribútumok és típuskonverterek implementálásához, az adatforrásokhoz való kötéshez és a licencelési összetevőkhöz szükséges alaposztályokat és interfészeket.
Az alapvető összetevőosztályok a következők:
Component. Az interfész alap implementációja IComponent . Ez az osztály lehetővé teszi az objektumok megosztását az alkalmazások között.
MarshalByValueComponent. Az interfész alap implementációja IComponent .
Container. Az interfész alap implementációja IContainer . Ez az osztály nulla vagy több összetevőt foglal magában.
Az összetevők licencelésére használt osztályok némelyike a következő:
License. Az összes licenc absztrakt alaposztálya. A licencet egy összetevő egy adott példánya kapja meg.
LicenseManager. Tulajdonságokat és metódusokat biztosít, amelyek lehetővé teszik egy licenc hozzáadását egy összetevőhöz, valamint egy LicenseProvider kezelését.
LicenseProvider. A licencszolgáltató implementálásának absztrakt alaposztálya.
LicenseProviderAttribute. Megadja az LicenseProvider osztályhoz használni kívánt osztályt.
Az összetevők leírására és megőrzésére gyakran használt osztályok.
TypeDescriptor. Információt nyújt az összetevők jellemzőiről, például attribútumairól, tulajdonságairól és eseményeiről.
EventDescriptor. Információkat tartalmaz egy eseményről.
PropertyDescriptor. Információt nyújt egy tulajdonságról.
Kapcsolódó szakaszok
Vezérlő- és összetevő-létrehozás hibaelhárítása
Ismerteti, hogyan háríthatja el a gyakori problémákat.