構成ファイルを使用して、コマンド ラインから dotfuscator 5 を実行しています。これは多かれ少なかれ問題なく機能しますが、新たに発生した 1 つの要件を除きます。
名前の変更から除外する必要がある少数 (半ダース未満) の void メソッドを持つクラスがあります (リフレクトされたメソッドを名前で呼び出す迂回システムの場合、質問しないでください...)
彼らの署名は (罪のない人を保護するために変更された名前)void Method(System.Xml.XmlNode xnode, ref System.String str)
です。
私の質問は 2 つあります。
- dotfuscator 構成構文で ref パラメーターを表現するにはどうすればよいですか?
- Map ファイルで引用されているメソッドのシグネチャを使用しても機能しないのはなぜですか?
マップ ファイルには、<signature>void(System.Xml.XmlNode, string&)</signature>
これらのメソッドの名前が変更されたときに要素が含まれます。したがって、構成ファイルで次のように指定できると思います。
<type name="ParentClass" excludetype="false">
<method signature="void(System.Xml.XmlNode, string&)"/>
</type>
これはうまくいきません。コマンド ライン ユーティリティからの出力は、構成ファイルが無効であると主張しています。
構文を含めると、name=".*" regex="true"
その型のすべてのメソッドが除外されます。私はそれをしたくありません。これがなぜなのか理解できます - ルールは一緒に OR されます - しかし、ユーティリティは、私の実際の要件を指定する設定ファイルを拒否することによって、私が望まないオプションを使用することを強制します.
何を与える?
私は、これに悩まされ始めているので、Dotfuscator のドキュメントがあまり良くないことに気付いたことを指摘しておく必要があると感じています。