2016-09-19 11 views
0

VS 2015 커뮤니티에서 C# 대화 형 창을 사용하려고합니다.C# -interactive는 공통 참조를 포함하는 두 클래스 라이브러리를 사용할 때 모호한 참조를 제공합니다.

두 개의 클래스 라이브러리 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이 FrameLib에 정의 된 클래스이며, DataFrame 인덱서에 의해 반환됩니다. CSVlib에서는 참조를 통해 Frame 클래스를 사용할 수 있지만 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' 

내가 자격이있는 DataFrame을 만들 수 있습니다) 다른 프로젝트에

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

이 C# 코드, 대화 형 윈도우 외부 (즉, 잘 작동 : 다음 CSV.read는 DataFrame)를 반환

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

두 라이브러리를 사용하여 대화식 창에서 명령문을 작동 시키려면 어떻게해야합니까?

+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은 없습니다. 어쨌든 두 개의 DataFrame 타입이 정의 된 이유는 무엇입니까? IA 윈도우의 코드와 솔루션의 코드가 동일하다면 하나만 있어야합니다. – fredm73

답변

0

이것은 내 실수였습니다. 나는 디버그/오해를 쌓았다. 실제로 "x86"에서 하나를 사용하고 있다고 생각할 때 "모든 CPU"에 대한 디버그 빌드에서 남겨진 두 가지 유형이 실제로 정의되었습니다. 실제로, 일들은 예상대로 작동합니다. John Skeet에게 감사드립니다. 유감 스럽다.