[英]System.MissingMethodException: Method not found: 'System.String .get_DayName()'
我有以下类型:
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()'。
知道为什么吗?
谢谢
也许你只需要重新编译? 我在本地运行此代码,它工作正常。
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();
}
}
我以前遇到过同样的问题。 我有一个引用类库的SharePoint项目。 在.net 4.0及更高版本中,DLL将插入此位置: C:\\Windows\\Microsoft.NET\\assembly\\GAC_MSIL\\
。 因此,如果您得到与上面相同的错误,那么您需要重新构建解决方案并再次在GAC_MSIL中部署DLL,否则它仍将引用旧的DLL。
在我的情况下,问题是,我已经在库中将属性类型从字符串更改为int。 在另一个项目中,在编译时分配给动态变量的属性变量不会产生任何错误,但在运行时会抛出此错误。 为了解决这个问题,我需要编译具有动态变量赋值的项目,该项目没有任何变化。 现在它工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.