私たちのアプリケーションには、Enum の拡張機能があります。
namespace System
{
/// <summary>
/// Contains extention methods for emuns.
/// </summary>
public static class EnumExtention
{
/// <summary>
/// Check is value has flag.
/// </summary>
/// <param name="value">Checked value</param>
/// <param name="checkedFlag">Checked flag.</param>
/// <returns>True if enum contains specified flag. Otherwise false</returns>
public static bool HasFlag(this Enum value, Enum checkedFlag)
{
ulong num = Convert.ToUInt64(checkedFlag);
ulong num2 = Convert.ToUInt64(value);
return (num2 & num) == num;
}
}
}
プロジェクトのどこかに Enum と Func があります。
[Flags]
public enum MyEnum
{
zero= 0,
two = 2,
three = 3,
threetwo = two | three
}
public void SomeFunc()
{
var ThreeTwo = Myenum.threetwo;
bool _true = ThreeTwo.HasFlag(Myenum.three);
bool _false = ThreeTwo.HasFlag(Myenum.zero);
System.Windows.MessageBox.Show(String.Format("_true is: {0} and _false is : {1}", _true, _false);
}
public void СallerFunction()
{
try
{
SomeFunc();
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(String.Format("Oops! {0}"), ex.Message));
}
}
リリース モードでビルドした後、すべて問題なく動作し、次のようになります。
「_true は true で、_false は false です」
しかし、Dotfuscator がコードに取り組んだ後、次の結果が得られました。
「おっと! MethodNotFoundException」
そして、すべての機能がはいに設定されています
Dotfuscator のバージョン: PreEmptive ver4.9.7000 WindowsPhoneEdition
拡張機能の何が問題になっていますか?
PS私の英語でごめんなさい。