2011-01-04 12 views
0

私はいくつかのコードをリファクタリングしましたが、今は関数呼び出し時にこのエラーが発生します。しかし、すべてがうまくいくように見える、私はさらに古いコードと新しいコードの間でfailing_argument.GetType().AssemblyQualifiedNameを比較し、それらは同じです。何が間違っている可能性がありますか?なぜこの.NETエラーが発生するのですか? "TypeError:期待リスト[DataPoint]、リスト[DataPoint]"

関数の呼び出しはIronPythonコードで行われ、関数はC#コード(このリファクタリング中に変更されなかったアセンブリ)にあります。

どのようなことがこのエラーを生成する可能性がありますか?

EDIT:フルIronPythonのトレースバック:

Traceback (most recent call last): 
    File "D:\Work\Framework\python\ide\tab_manager.py", line 57, in add_chart_tab 
    chart_tab = ChartTab(self.__main_window, self, tab_item, name, chart_descriptor) 
    File "D:\Work\Framework\python\ide\chart_tab.py", line 64, in __init__ 
    self.__chart = Chart(self, self.__gui_cfg, self.__base_cfg, self.__chart_descriptor, self.__scroll_bar) 
    File "D:\Work\Framework\python\ide\chart.py", line 57, in __init__ 
    self.update_topology(empty=False) 
    File "D:\Work\Framework\python\ide\chart.py", line 93, in update_topology 
    self.update_config() 
    File "D:\Work\Framework\python\ide\chart.py", line 111, in update_config 
    self.__global.chart_view = ChartView(self.__global) 
    File "D:\Work\Framework\python\ide\chart_view.py", line 33, in __init__ 
    self.__spans = SpanUtil.compute_spans(time_series, gap_threshold) 
TypeError: expected List[DataPoint], got List[DataPoint] 
+0

あなたがコードを投稿すると、正確なエラーですら大丈夫でも、この質問をanserにするほうがはるかに簡単です。 –

+0

エラーメッセージが表示されますか?おそらく、おそらく "リスト"の代わりに "IList"と言っているのでしょうか? –

+0

完全な例外トレースバックを追加しました。いくつかのコードを抽出してここに投稿するのは複雑です - IronPythonとC#の両方にまたがっていますが、実際にはエラーが奇妙なので小さなコードでもこれを再現できるとは確信していません – Meh

答えて

2

はさらに、デバッグ後、私はコードとは異なるエラーメッセージを取得するために管理:このの検索Unable to cast object of type 'List[DataPoint]' to 'List[DataPoint]'

は、問題を説明する記事のカップルをもたらした:
http://www.infinitec.de/post/2008/05/InvalidCastException-Unable-to-cast-object-of-Type-X-to-X.aspx
http://geekswithblogs.net/rupreet/archive/2010/02/16/137988.aspx

それが判明しますアセンブリがDataPointList[DataPoint])を含んでいて、2つの異なる場所からアプリケーションに2回ロードされています。私の場合の原因は、Visual Studioがアセンブリをビルドするときに、binフォルダ内の新しく作成されたアセンブリの隣にある他のすべての参照アセンブリもコピーすることです。しかし、参照されているアセンブリの1つを元のビルド位置から動的にロードします。

+0

私は同じ問題を抱えていたことに注意してください。たとえば、私のプロジェクトでは、「C:\\ Something \\ Something \\ MyDLL.dll」 'への参照があり、IronPythonでは' 'C:/Something/Something/MyDLL.dll」'同じDLLを2回ロードすることになります。 **パスが本質的に同じであっても、一致しないと問題が発生します**! –

0

(名前空間を含む)完全なタイプ名を使用して...型解像度で問題になることがあります。いくつかのコードサンプルが役に立ちます!

関連する問題