问题标签 [invalidoperationexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3317 浏览

c# - 在 c# 中使用 foreach 循环时修改集合

基本上,我想在 foreach 循环内从列表中删除一个项目。我知道这在使用 for 循环时是可能的,但对于其他目的,我想知道这是否可以使用 foreach 循环来实现。

在python中,我们可以通过执行以下操作来实现:

这给出了以下输出

但是当在 c# 中做类似的事情时,我得到一个 InvalidOperationException,我想知道是否有办法解决这个问题,而不仅仅是使用 for loop

我在抛出异常时使用的 c# 中的代码:

提前致谢

0 投票
1 回答
2524 浏览

linq - 使用 Expression.Lambda() 编译委托 - 参数超出范围,但真的如此吗?

我今天在动态表达式构建库中实现一个功能时遇到了一个有趣的问题。更具体地说,但无关紧要的是,在表达式中定义运算符优先级的功能。

当 LINQ 引擎编译最终表达式时,我遇到了一个InvalidOperationException声明Lambda parameter out of scope.

ParameterExpression分配相关对象后,问题就显现出来了。

在使用完整且格式良好的 lambda 表达式树时,我发现ParameterExpression在编译 Lambda 时将 Lambda 的对象重新分配给有效引用是无效的。

这是我在应用修复之前最初采用的行为的简短描述:

  • 构建表达式树,用于使用 with Queryable.Where,根表达式为 a LambdaExpression,构造使用Expression.Lambda(expression, Expression.Parameter(GetType(type), "name"))
  • 访问表达式树(使用LinqKit),构建遇到的参数哈希表
  • 随后的同名参数被替换为遇到的第一个同名参数

结果是一个表达式树,其中所有ParameterExpression同名的引用都指向同一个对象 - 但InvalidOperationException在编译时遇到了。

我应用的修复采用了以下行为:

  • 将参数构建为数组ParameterExpression
  • 构造根 Lambda,使用Expression.Lambda(expression, parameterArray)
  • 访问表达式树(使用 LinqKit),将遇到的参数替换为参数 fromparameterArray

最终结果编译得很好,即使 Lambda 表达式结构在概念上与前一个行为的输出相同。

问题是:为什么第一个失败,第二个成功

下面是一个要重现的测试夹具类(请原谅 vb),带有测试用例和几个支持类(取决于 nUnit,LinqKit):

注意:缺少 TestFixture 和 Test 属性声明 - 如何在 markdown 中执行?

0 投票
3 回答
48772 浏览

c# - 来自 C# 进程类的无效操作异常

当我使用 VSTS 调试器查看类实例的属性时Process,许多属性都标有InvalidOperationException. 为什么?我做错什么了吗?

我正在使用 VSTS 2008 + C# + .Net 2.0 来开发控制台应用程序。

这是我的代码:

以及调试器的截图:

在此处输入图像描述

0 投票
1 回答
6414 浏览

c# - 如何向现有的依赖属性回调添加逻辑?

我正在尝试将 PropertyChangedCallback 添加到 UIElement.RenderTransformOriginProperty。当我尝试覆盖 PropertyMetadata 时引发异常。

我搜索了 MSDN 和 Google,我所能想到的就是这个。DependencyPropertyDescriptor.AddValueChanged 在那篇文章的某个时候被建议,但这不会解决我的问题,因为这不是每个实例的回调。

我完全不明白这个例外意味着什么。有谁知道我做错了什么?

0 投票
4 回答
31912 浏览

linq-to-sql - 查询结果不能枚举多次?

我正在使用 LINQ to SQL 在 Sql server 2008 中获取 FullTextSearch 存储过程的搜索结果。我将过程从服务器资源管理器拖到设计器中,并获得了使用适当的返回类型和参数创建的方法。现在的问题是,我需要获取调用此方法的结果的计数,因此使用我的存储库方法(它将调用 Sproc 方法并将结果作为 IQueryable 返回)我进行了以下调用。

这段代码每次我尝试运行它时都会生成一个 InvalidOperationException,异常说(是的,你猜对了!)“查询结果不能被枚举多次。”

为 Sproc 生成的方法返回 ISingleResult,它应该是 OK AFAIK。我需要在我的视图上支持分页,所以我需要知道总页数,只有在我可以获得所有项目的计数时,这(再次是 AFAIK)才有可能。

伙计们,我在这里错过了什么?

0 投票
9 回答
11027 浏览

c# - 为什么我们不能在枚举其键时更改字典的值?

我完全理解为什么在枚举列表时会抛出这个异常。期望在枚举期间枚举对象的结构不会改变似乎是合理的。但是,更改字典的是否也会更改其结构?具体来说,它的键的结构?

0 投票
3 回答
750 浏览

wpf - 来自已完成线程的对象上的 InvalidOperationException

在 WPF 应用程序中,我有一个 BackgroundWorker 线程创建一个对象。我们称对象为 foo。

后台工作者代码:

现在,当主类尝试使用 getter 访问 FooProperty 时,我得到一个 InvalidOperationException:调用线程无法访问此对象,因为另一个线程拥有它。

如果创建对象的线程已经完成,为什么它仍然拥有该对象?有什么办法吗?

0 投票
1 回答
641 浏览

asp.net - InvalidCastException:System.Web.UI.PartialCachingControl -> 输出缓存时的 MyCustomControl

问题:我无法将 OutputCaching 与源自 MyCustomControl 的控件一起使用。控件是使用 Page.LoadControl 方法使用数据库中的定义动态加载的。

当我添加到 ascx <%@ OutputCache VaryByParam="*" Duration="3600"%> 时,会引发“InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl”异常。

我无法修改包含动态加载控制逻辑的程序集。有没有办法在派生控件中修复它?

第二个问题是关于 iis7 和本机输出缓存——它解决了这个问题吗?(我试图设置几个性能计数器,我发现缓存没有被命中......)

0 投票
8 回答
329152 浏览

c# - 可空对象必须有一个值

异常描述中有一个悖论:Nullable object must have a value (?!)

这就是问题:

我有一DateTimeExtended堂课,有

和一个构造函数

运行此代码

抛出一个InvalidOperationException消息:

可空对象必须有一个值。

myNewDT.MyDateTime.Value- 有效且包含常规DateTime对象。

此消息的含义是什么,我做错了什么?

注意oldDTE不是null。我已经删除了ValuefrommyNewDT.MyDateTime但由于生成的设置器而引发了相同的异常。

0 投票
2 回答
1094 浏览

.net - 使用 System.Drawing.Graphics 时如何防止 InvalidOperationException?

System.Drawing.Graphics.DrawLines(Pen pen, PointF[] points)在多线程应用程序中使用该方法,但System.Drawing.Graphics不在线程之间共享。

为什么一直在扔System.InvalidOperationException: The object is currently in use elsewhere