Beim Ausführen dieses Programms erhalte ich den Fehler: Eine nicht behandelte Ausnahme vom Typ 'System.Security.SecurityException' ist aufgetreten Zusätzliche Informationen: ECall-Methoden müssen in einem Systemmodul zusammengefasst sein.
%Vor%Wie kann ich das beheben?
Der wichtige Teil der Brekel-Bibliothek ist wie folgt:
%Vor%Es scheint, dass Sie eine Unity-Bibliothek verwenden, aber versuchen, sie als eigenständige Anwendung auszuführen?
Dieser Fehler bedeutet, dass Sie eine Methode aufrufen, die in der Unity-Engine implementiert ist. Sie können die Bibliothek nur in Unity verwenden.
Wenn Sie es eigenständig verwenden möchten, müssen Sie die Bibliothek kompilieren, ohne auf Unity-Bibliotheken zu verweisen. Dies bedeutet wahrscheinlich, dass Sie Implementierungen für alle von der Bibliothek verwendeten Objekte bereitstellen müssen (z. B. MonoBehaviour
Zusätzlich, Wenn das einzige Problem ist, dass Debug.Log () eine Ausnahme auslöst, können Sie mithilfe der Reflektion Ihre eigene Logger-Instanz statt der Unity-Instanz erstellen.
Schritt 1: Erstellen Sie "MyLogHandler", das Ihre eigentliche Protokollierung durchführt (in Datei schreiben oder Konsole oder nichts tun). Ihre Klasse muss die "ILogHandler" -Schnittstelle implementieren.
Schritt 2: Ersetzen Sie den Standardwert für die Einheit durch einen neuen.
%Vor%Hinweis: Denken Sie daran, dass die Reflektion auf das Feld mit dem Namen zugreift und wenn Unity entscheidet, es in Zukunft zu ändern, erhalten Sie keinen Kompilierungsfehler - Ausnahme wird in der Laufzeit ausgelöst.
Sie können Tests in Unity schreiben, indem Sie den unity test runner öffnen und verwenden, indem Sie in Windows gehen und test runner drücken. Dann drücke create editmode test und schreibe deine Tests in die erstellte Datei.
Auf diese Weise müssen Sie die Verwendung von Unity-Bibliotheken nicht weglassen.
Tags und Links c# visual-studio securityexception