Я получаю "Указанный приведение недействителен", действительный при выполнении только сборки релиза из MSBuild 4.0. Я проверил это в использовании сборки релиза Visual Studio 2012 и не получил эту проблему. Я также проверил это с помощью отладочной сборки из MSBuild 4.0 и не получил эту проблему.
Исключение:
код
public abstract class CachedSessionBase : ISessionObject
{
protected Dictionary<MethodBase, Object> _getAndSetCache = new Dictionary<MethodBase, object>();
protected TResult SetAndGet<TResult>(ObjectFactory factory, Func<TResult> func)
{
StackTrace stackTrace = new StackTrace();
var methodBase = stackTrace.GetFrame(1).GetMethod();
if (!_getAndSetCache.ContainsKey(methodBase))
{
_getAndSetCache[methodBase] = func.Invoke();
}
return (TResult)_getAndSetCache[methodBase];
}
Ошибка в этой строке
return (TResult)_getAndSetCache[methodBase];