The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン 【Nandoku3.2.5】 エラー報告 コード解析に失敗
日時: 2009/11/10 11:38
名前: masa

自作のライブラリ(.NET3.5)の難読化を行おうとすると、コード解析時にエラーが発生しました。
四つのライブラリのうちエラーが発生するのは一つだけですので、
コンパイラなどの環境面ではないとおもいます。

メッセージボックスには次のように表示されました。

難読化に失敗しました。
コード解析に失敗しました。
10706 行目
  .class interface public abstract auto ansi 'IColumnList' implements
  class ['mscorlib']'System.Collections.Generic'.'IList`1' < class 'IColumn' >,
  class ['mscorlib']'System.Collections.Generic'.'ICollection`1' < class 'IColumn' >,
  class ['mscorlib']'System.Collections.Generic'.'IEnumerable`1' < class 'IColumn' >,
  ['mscorlib']'System.Collections'.'IEnumerable'


'IColumn' はライブラリで定義しているインターフェースです。名前空間などは省略しています。
なお、IColumn<T> といった同名のジェネリックインターフェースも定義しています。

  public interface IColumnList<T> : IList<IColumn<T>>, IColumnList

  public interface IColumnList : IList<IColumn>

そしてこれらのインターフェースを実装するクラスを定義しています。

  public class ColumnList<T> : IColumnList<TObject>, IColumnList

  public class ColumnList<T, U> : ColumnList<T>


このメッセージの意味を教えていただけませんでしょうか。こちらでも検証します。

Page: 1 |

ファイル ミニマムコードで再現 ( No.1 )
日時: 2009/11/10 12:58
名前: masa

以下のコードのみを記述したクラスライブラリを作成して難読化しようとしたところ、
同様のエラーが発生しました。
実装クラスではなくインターフェース自身の定義に何らかの問題があると思われます。

public interface IColumnList : IList<IColumn> {
}

public interface IColumn<T> : IColumn {
}

public interface IColumn {
}
ファイル Re: 【Nandoku3.2.5】 エラー報告 コード解析に失敗 ( No.2 )
日時: 2009/11/11 00:26
名前: Toki◆pRU.c9X.EOI

詳細なご報告ありがとうございます

>コード解析に失敗しました。

メッセージのとおり、ILコードの解析に失敗しています。
もちろん原因は作者の私の実装ミスです。

エラーが発生するコードを提示してくださったので、
原因はほぼ特定できました。

近日中に修正しようと思います。
ファイル Re: 【Nandoku3.2.5】 エラー報告 コード解析に失敗 ( No.3 )
日時: 2009/11/11 17:45
名前: masa

了解しました。よろしくお願いします。

インターフェースに IList<T> を継承させたときに発生するようですね。

Page: 1 |