dirtyCastAndCallOnInterface MDA
Feljegyzés
Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.
A dirtyCastAndCallOnInterface
felügyelt hibakeresési segéd (MDA) akkor aktiválódik, ha egy virtuális táblán keresztüli korai kötésű hívást kísérel meg egy olyan osztályfelületen, amely csak későn kötöttként van megjelölve.
Hibajelenségek
Az alkalmazások hozzáférés-megsértést okoznak, vagy váratlan viselkedést váltanak ki, amikor com-on keresztüli korai hívásokat helyeznek a CLR-be.
Ok
A kód egy korai kötésű hívást kísérel meg egy virtuális táblán keresztül egy csak későn kötött osztályfelületen keresztül. Vegye figyelembe, hogy alapértelmezés szerint az osztályfelületek csak késői kötésűként vannak azonosítva. A () értékkel[ClassInterface(ClassInterfaceType.AutoDispatch)]
rendelkező AutoDispatch attribútummal ClassInterfaceAttribute későn kötöttként is azonosíthatók.
Resolution (Osztás)
Az ajánlott megoldás egy explicit felület definiálása, amelyet a COM használ, és az automatikusan létrehozott osztályfelület helyett ezen a felületen keresztül kell meghívni a COM-ügyfeleket. Másik lehetőségként a COM-ból érkező hívás késői hívássá alakítható át.IDispatch
Végül meg lehet állapítani, hogy az osztály AutoDual ([ClassInterface(ClassInterfaceType.AutoDual)]
) lehetővé teszi a korai kötésű hívások COM-ból való indítását; a használat AutoDual azonban erősen elriasztja a verziószámozási ClassInterfaceAttributekorlátozások miatt.
Effektus a futtatókörnyezetre
Ez az MDA nincs hatással a CLR-re. Csak a késői kötésű felületeken történő korai hívásokkal kapcsolatos adatokat jelenti.
Hozam
A korábban elért mező metódusának vagy nevének neve.
Konfiguráció
<mdaConfig>
<assistants>
<dirtyCastAndCallOnInterface />
</assistants>
</mdaConfig>
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: