1

C#コンソールアプリケーションを逆コンパイルしてVisual C#2010で再度コンパイルしようとしましたが、コードに多くのエラーがあります。次に例を示します。

 public static Test mTest
    {
        [CompilerGenerated]
        get
        {
            return <mTest>k__BackingField;
        }
        [CompilerGenerated]
        set
        {
            <mTest>k__BackingField = value;
        }
    }

.netReflectorで.netFrameworkのバージョンを3.5に設定しました。.net Reflectorから再コンパイルできるコードを取得する方法はありますか?

4

1 に答える 1

4

この制限を克服する簡単な方法はありません。ILソースコードから作成されたコンパイラ。これには、最初のソースコードに関する情報が含まれていないIL場合があります。たとえば、あなたが書くとき

public string Property { get; set; }

コンパイラはバッキングフィールド(たとえば<Property >k__BackingField)を作成し、ソースコードでフィールドに名前を付けるために使用できない特別な記号を使用して名前を付けます。上記の例では、リフレクターがコンパイラーの意味を推測しようとしました。

私はdotPeek(JetBrainsによる無料の逆コンパイラー)を使用しましたが、autopropertiesを理解しているので、例に正しいコードが表示されます。しかし、繰り返しになりますが、dotPeekが最初のソースコードを取得できない場合があります。

于 2013-03-21T18:55:35.640 に答える