2016-09-19 6 views
0

VS 2015コミュニティ内でC#対話ウィンドウを使用しようとしています。共通参照を含む2つのクラスライブラリを使用するとC#-interactiveの参照が曖昧になる

私は2つのクラスライブラリCSVlibとFrameLibを持っています。前者には後者への言及がある。

> #r "D:\Documents\Visual Studio 2015\Projects\DataExplorer\CSVlib\bin\Debug\CSVlib.dll" 
> using CSVlib; 
> string fileName = @"D:\csvFiles\Players.csv"; 
> DataFrame frame = CSV.read(fileName); 
> frame.colNames 
List<string>(5) { "name", "city", "sex", "age", "weight" } 
> ColumnData foo = frame["city"]; 
(1,1): error CS0246: The type or namespace name 'ColumnData' could not be found (are you missing a using directive or an assembly reference?) 

ColumnDataは、DataFrameインデクサによって返されるクラスです。それは、クラスFrameは、CSVlibの参照を介して利用可能だが、ColumnDataは利用可能ではないようだ。私は明示的にFramelibを参照しようとしましたが、それは仕事を得ることができません:(

> FrameLib.DataFrame df = new FrameLib.DataFrame(); 

しかし、私は仕事にCSV.read文を取得することができません:

> #r "D:\Documents\Visual Studio 2015\Projects\DataExplorer\FrameLib\bin\Debug\FrameLib.dll" 
> using FrameLib; 
> DataFrame df = new DataFrame(); 
(1,1): error CS0104: 'DataFrame' is an ambiguous reference between 'CSVlib.DataFrame' and 'FrameLib.DataFrame' 
(1,20): error CS0104: 'DataFrame' is an ambiguous reference between 'CSVlib.DataFrame' and 'FrameLib.DataFrame' 

は私が資格を持つデータフレームを作ることができます)別のプロジェクトに

FrameLib.DataFrame frame = CSV.read(fileName); 
(1,28): error CS0029: Cannot implicitly convert type 'CSVlib.DataFrame' to 'FrameLib.DataFrame' 

このC#コード、対話型の窓の外(つまり、正常に動作します:CSV.readは、データフレームを)返し

using CSVlib; 
    using FrameLib; 
    ... 
    string fileName = @"D:\csvFiles\Players.csv"; 
    DataFrame frame = CSV.read(fileName); 
    ColumnData foo = frame["city"]; 

2つのライブラリを使用して、ステートメントをインタラクティブウィンドウで使用する方法を教えてください。

+0

'CSV.read'が' FrameLib.DataFrame'ではなく 'CSVlib.DataFrame'を返すように聞こえますので、それを使用してください:' CSVlib.DataFrame frame = CSV.read(fileName) ' –

+0

これは動作しますしかし、CSVlib.DataFrameはインデクサーに気づいていないようです: – fredm73

+0

その提案はそのステートメントに有効です。しかし、次のコードはまだ失敗します:> ColumnData foo = frame ["city"]; 変数が見つかりません:v01 + CSVlib.DataFrame.get_Item(string) IAウィンドウのインデクサーでCSVlib.DataFrameが失敗するようです。私のライブラリのどこにでも変数v01は定義されていません。いずれにしても、現在2つのDataFrameタイプが定義されているのはなぜですか? IAウィンドウ内のコードとソリューション内のコードが同等であれば、1つしかないはずです。 – fredm73

答えて

0

これは私の間違いでした。私はデバッグ/誤解を抱えていました。実際、「x86」からのものを使用していると思ったとき、「Any CPU」用のデバッグビルドから残された2つのタイプが実際に定義されていました。実際、物事は彼らが想定している通りに働く。 John Skeetに感謝します。流行のために申し訳ありません。

関連する問題