C# C继承了ArrayList类,并使用自定义方法查询自身

C# C继承了ArrayList类,并使用自定义方法查询自身,c#,C#,我有一个继承System.Collections.ArrayList的C类,其定义如下: 名称空间foo { 公共类ConnectionTracker:System.Collections.ArrayList { public void remove连接连接连接删除 { //从全局轨迹对象中删除 此.RemoveconnectionToRemove; //从另一个类中删除受信任的主机 External.RemoveAotherHostconnectionToRemove.Name; } } }

我有一个继承System.Collections.ArrayList的C类,其定义如下:

名称空间foo { 公共类ConnectionTracker:System.Collections.ArrayList { public void remove连接连接连接删除 { //从全局轨迹对象中删除 此.RemoveconnectionToRemove; //从另一个类中删除受信任的主机 External.RemoveAotherHostconnectionToRemove.Name; } } } 此类不在C应用程序中使用,而是在PowerShell中使用。此类的一个新实例被构造并用于跟踪web应用程序连接

$GlobalVariable=[foo.ConnectionTracker]::新建 $Globalvariable.Add[foo.Connection]::新建$ConstructorPropertyValues1 $Globalvariable.Add[foo.Connection]::新建$ConstructorPropertyValues2 web应用程序连接有一个名为Default的属性,其类型为Bool。我想创建一个方法,该方法在其自身的所有成员中搜索唯一包含默认值true的条目

我已尝试添加以下内容:

公共连接默认值 { var defaultConnection=来自此数据库中的连接c 其中c.Default==true 选择c; 返回defaultConnection.Single; } 但在PowerShell中,我遇到了以下错误:

C:\>$GlobalVariable.Default MethodInvocationException:使用0个参数调用默认值时发生异常:无法将“System.Management.Automation.PSObject”类型的对象强制转换为“Connection”类型。
我想做的事可能吗?是的,我已经知道我可以做$GlobalVariable | Where对象{$\默认值}。但是我宁愿构建一个类方法,以更简单的方式处理这个问题。

错误似乎在于它不知道如何处理Default的返回值。你想用它做什么?将其分配给变量?漂亮的打印?你试过调试你的类了吗?看一看。我猜PowerShell正在用PSObject包装您的连接对象,这就是您正在收集的内容。您最好让所有东西都更像PowerShell,而不是C,使用一个新的MyConnection命令和命令来收集和操作它所创建的对象generates@JamesFaix只需返回它所在的对象,类型为[foo.Connection]。似乎错误在于它不知道如何处理Default的返回值。你想用它做什么?将其分配给变量?漂亮的打印?你试过调试你的类了吗?看一看。我猜PowerShell正在用PSObject包装您的连接对象,这就是您正在收集的内容。您最好让所有东西都更像PowerShell,而不是C,使用一个新的MyConnection命令和命令来收集和操作它所创建的对象generates@JamesFaix只需返回它所在的对象,它的类型为[foo.Connection]。