我有以下类型:
public class TimeBand
{
public string DayName { get; set; }
public int customerId { get; set; }
}
我正在创建一个包含TimeBands的列表:
var TimeBandList = new List<TimeBand>
{
new TimeBand()
{
DayName = DayOfWeek.Monday.ToString(),
customerId = 10
},
new TimeBand()
{
DayName = DayOfWeek.Tuesday.ToString(),
customerId = 11
}
.....
};
我正在使用以下内容将TimeBands加载到另一个List中:
var timeBandRange = new List<TimeBand>();
timeBandRange = TimeBandList.Where
(p => p.customerId == newCustomerId
&& p.DayName == date.DayOfWeek.ToString()).ToList();
这很好但是在TimeBand课程中我决定将 DayName 属性的类型从字符串更改为 DayOfWeek ,所以代码变得像这样:
public class TimeBand
{
public DayOfWeek DayName { get; set; }
public int customerId { get; set; }
}
var TimeBandList = new List<TimeBand>
{
new TimeBand()
{
DayName = DayOfWeek.Monday,
customerId = 10
},
new TimeBand()
{
DayName = DayOfWeek.Tuesday,
customerId = 11
}
.....
};
DateTime date = IndDate;
var timeBandRange = new List<TimeBand>();
timeBandRange = TimeBandList.Where
(p => p.customerId == parameter.customerId
&& p.DayName == date.DayOfWeek).ToList();
此新代码现在在 TimeBandList.Where 行失败并出现以下错误: System.MissingMethodException:找不到方法:'System.String TimeBand.get_DayName()'。
知道为什么吗?
由于
答案 0 :(得分:2)
也许你只需要重新编译?我在本地运行此代码并且工作正常。
class Program
{
static void Main(string[] args)
{
TimeBand.DoSomething();
}
}
public class TimeBand
{
public DayOfWeek DayName { get; set; }
public int customerId { get; set; }
public static void DoSomething()
{
var TimeBandList = new List<TimeBand>
{
new TimeBand()
{
DayName = DayOfWeek.Monday,
customerId = 10
},
new TimeBand()
{
DayName = DayOfWeek.Tuesday,
customerId = 11
}
};
DateTime date = DateTime.Now;
var timeBandRange = new List<TimeBand>();
timeBandRange = TimeBandList.Where
(p => p.customerId == 1
&& p.DayName == date.DayOfWeek).ToList();
}
}
答案 1 :(得分:2)
之前我遇到过同样的问题。我有一个引用类库的SharePoint项目。在.net 4.0及更高版本中,DLL将插入此位置:C:\Windows\Microsoft.NET\assembly\GAC_MSIL\
。
因此,如果你得到与上面相同的错误,那么你需要重建你的解决方案并再次在GAC_MSIL中部署你的DLL,否则它仍然会引用旧的DLL。
答案 2 :(得分:0)
在我的情况下问题是,我已经在库中将属性类型从字符串更改为int。在另一个项目中,在编译时分配给动态变量的属性变量不会产生任何错误,但在运行时会抛出此错误。为了解决这个问题,我需要编译具有动态变量赋值的项目,该项目没有任何变化。现在它工作正常。