2016-08-26 2 views
0

Wir haben eine Baugruppe namens DataObjectJsonLoader. Darin gibt es eine Klasse wie folgt:Seltsamer Laufzeitfehler nach Verschleierung

public static class DrillingFluidDataObjectJsonLoader 
{ 
    public static Result<DrillingFluid> Load(string strDrillingFluid) 
    { 
     .... 
     var type = ConvertToMudType(...); 
     .... 
    } 
    private static MudType ConvertToMudType(string strDillingFluidType) 
    { 
     .... 
    }  
} 

Alles funktioniert gut vor der Verschleierung. Der Obfuscator, den wir verwenden, ist Net Reactor 5.0. Und wir haben bereits die String-Verschlüsselung deaktiviert. Aber nach Verschleierung, wenn wir die oben öffentliche Funktion aufrufen, wird es eine Laufzeit Bindemittel Ausnahme sein:

die ‚DrillingFluidDataObjectJsonLoader‘ enthält keine Definition für ‚ConvertToMudType‘.

Was ist die Ursache dieses Problems? Und wie man es repariert?

+5

Würde der bessere Ort zu bitten, dies nicht Net Support Reactor sein? Offenbar ist es eine private Methode umzubenennen, aber nicht die Aufrufseite zu ändern. – CodeCaster

+0

Verschleierung und interpretierte Schnittstellen (fast alle JSON-Tools) ist riskant. Sind Sie sicher, Ihre Software wird irgendwann einmal demontiert? –

Antwort

1

Vielleicht ausschließen nur diese Klasse von Verschleierung als zeitliche Lösung ...

[Obfuscation(Exclude = true, ApplyToMembers = true)] 
+0

Das hat mir sehr geholfen, ich war mir dieser Eigenschaft nicht bewusst. – abeyaz