2016-04-19 13 views
0

上のメソッドを呼び出している間、私は次のエラーを取得しています:C#の例外動的クラスからオブジェクトをキャストしながら動的クラス

public class ParameterHelper 
{ 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public Type type { get; set; } 
} 

[A]System.Collections.Generic.List`1[ParameterHelper] 
cannot be cast to [B]System.Collections.Generic.List`1[ParameterHelper]. 


Type A originates from 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 
in the context 'LoadNeither' 
at location 'C:\\Windows\\Microsoft.Net\\assembly\\GAC_32\\mscorlib\\v4.0_4.0.0.0__b77a5c561934e089\\mscorlib.dll'. 

Type B originates from 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 
in the context 'LoadNeither' 
at location 'C:\\Windows\\Microsoft.Net\\assembly\\GAC_32\\mscorlib\\v4.0_4.0.0.0__b77a5c561934e089\\mscorlib.dll'. 

は、オブジェクトは、同じタイプの両方からです

私はこのクラスを.DLLにコンパイルし、コンパイルされたクラスのリファレンスとして追加しましたが、コンパイラはエラーをまったく与えません。 Stringを返す別の呼び出しが動作します。

これについてのご意見はありますか?

+1

なぜこれが「ダイナミック」だと思いますか?また、 'ParameterHelper'クラスを移動したときに前のバージョンを削除して曖昧でないようにしましたか? –

+0

@DavidPine私はメモリ内のクラスにプレーンテキストファイルをコンパイルしていますが、タイプは 'dynamic'です。 'ParameterHelper'は両方とも.DLLの中にあり、アプリケーション自体のための.CSLの中にあります。あなたはコンパイルされた.DLLへの参照を追加し、.CSLの代わりにこのファイルを使用することを提案しています。 –

答えて

0

のようなものを使用している場合はどうなりますか

0

List<dynamic>List<ParameterHelper>にキャストしようとしていませんか?あなたがあいまいなエラーを解決するためのプロジェクトから.csファイルを削除

mylist.OfType<ParameterHelper>() 
+0

いいえ、私はまさにこれをやっています: 'dynamic obj = compile.Compile(); //コンパイル.txt // string name = obj.getPluginName(); // works // List e = obj.getParamWithType(); // error // ' –

+0

これを再現することはできません。詳細情報が必要です。 コンパイルとは何ですか?表現? 実行時にいくつかのC#コードをコンパイルしようとしていますか? – Grappachu

関連する問題