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];