1
這是我第一次嘗試動態對象。我有一個類「單元」,其中包含字符串ID和浮點值。我想要的是獲取單元列表並創建一個動態對象,其所有ID和值作爲屬性。「動態對象不包含定義」錯誤在同一命名空間
這裏是我的 「DynamicRow」:
namespace WPFView
{
public class DynamicRow : DynamicObject
{
public List<Cell> Cells;
public DynamicRow(List<Cell> cells)
{
Cells = new List<Cell>(cells);
}
public string GetPropertyValue(string propertyName)
{
if (Cells.Where(x => x.ID == propertyName).Count() > 0)
{
//Cell.GetValueString() returns the float value as a string
return Cells.Where(x => x.ID == propertyName).First().GetValueString();
}
else
{
return string.Empty;
}
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = GetPropertyValue(binder.Name);
return string.IsNullOrEmpty(result as string) ? false : true;
}
}
}
我試圖用這個測試吧:
namespace WPFView
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//ArithmeticCell is derived from Cell
List<Cell> cells = new List<Cell> { new ArithmeticCell { ID = "NA2_DIR", Value = 1234 } };
DynamicRow dRow = new DynamicRow(cells);
MessageBox.Show(dRow.NA2_DIR);
}
}
}
有了這個,我得到一個編譯錯誤
'WPFView.DynamicRow'不包含'NA2_DIR'的定義,並且沒有可以找到接受類型'WPFView.DynamicRow'的第一個參數的擴展方法'NA2_DIR'
我讀過一些類似的問題,但他們的問題是動態對象是在與調用方法不同的程序集中定義的。在我的情況下,動態對象與調用方法位於相同的項目和名稱空間中。
我該如何解決這個錯誤?
哇,我不知道是否感到愚蠢,因爲我錯過了或感到喜出望外,因爲一個名人做回答我的問題 :) – Nitkov