Dotfuscator CE + Explizite Schnittstellen- implementierung (Interface) = TypeLoadException: Die Methode GetEnumerator hat keine Implementierung
Ich verwende Dotfuscator CE (Community Edition) um meine .Net Anwendungen zu schützen.
Kürzlich ist dabei ein Fehler aufgetreten:
TypeLoadException: Die Methode GetEnumerator hat keine Implementierung
Das Problem bestand aber nur nachdem die Anwendung vom Dotfuscator bearbeitet wurde. Vorher funktionierte alles noch prima.
Aufgetreten war das Ganze, weil ich in einer Klasse zwei verschiedene IEnumerable<T> implementiert hatte.
Beispiel:
1 2 3 | class MyClass : IEnumerable<ClassA>, IEnumerable<ClassB> { ... } |
In diesem Fall ist eine sogenannte Explizite Schnittstellenimplementierung notwendig. Dies hat der Dotfuscator offensichtlich nicht verstanden. Nachdem ich die Implementierung der Schnittstelle in eine extra Methode ausgelagert hatte und die Explizite Schnittstellenimplementierung entfernt hatte funktionierte alles wieder gut.