C# Specflow:如何在另一个文件夹的类中调用具有动态表作为参数的方法

Posted

技术标签:

【中文标题】C# Specflow:如何在另一个文件夹的类中调用具有动态表作为参数的方法【英文标题】:C# Specflow: How to call a method having dynamic tables as an argument in another folder's class 【发布时间】:2021-12-22 07:25:32 【问题描述】:

我有两个文件夹文件夹 A 和文件夹 B,其中包含不同的类和方法。

文件夹 A

A 类 -> Method1(使用其特征文件中提到的表中的数据)

文件夹 B

B 类 -> 方法二

问题:我想在 Method2 中调用 Method1。我已经导入了必要的类和其他数据,但仍然无法正常工作。

方法一:public void WhenAdminFillsAllTheDetails(Table table) // 这包含一长串数据,例如姓名、电话、城市、出生日期等。

方法2:该方法调用Method1,如下图: CNES_Steps.WhenAdminFillsAllTheDetails(table) // 我创建了一个 Table 实例 -> table

【问题讨论】:

在您的上下文中定义“文件夹”?编译类时,它不关心文件夹。你是说命名空间吗? 是方法1公开的,它的类是如何在方法2的类中初始化的。另外你的意思是它不起作用?是否存在编译错误或运行时错误? 【参考方案1】:

我不确定,也无法发表评论。但如果方法 1 不是静态的,则不能在不创建此类实例的情况下从另一个类调用它。

解决方案 1:将方法 1 设为静态

public static void Method1 ()

解决方案 2:创建包含方法 1 的类的实例

classFromOtherNameSpace obj = new classFromOtherNameSpace ();
obj.Method1();

【讨论】:

【参考方案2】:

我想在另一个方法中调用 Method1(使用其功能文件中提到的表中的数据)。由于 Table 实例的参数,我遇到了这个问题。由于该方法是特定的特征文件,没有相同特征文件的其他方法不能调用该方法。在这里,我没有收到任何错误,但浏览器在运行测试时打开时会立即关闭。

后来我发现这实际上是不可能的,因为 Table 有一些限制。

如果我想在多个绑定之间共享数据,那么我必须使用上下文注入方法。我也这样做了。我创建了一个新的单独 POCO 类,仅用于共享数据,然后我在 2 个不同的绑定中使用同一个类。

希望这个解释也能帮助其他面临同样问题的人。谢谢! :)

【讨论】:

以上是关于C# Specflow:如何在另一个文件夹的类中调用具有动态表作为参数的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个不是 AppDelegate 的类中获取 devicetoken?

如何导入和使用在另一个python程序的类中定义的变量?

在 boost.python 中;如何公开包含在另一个类中的类(通过组合)?

在 boost.python 中;如何公开包含在另一个类中的类(通过组合)?

c# Unity - 如何在另一个类中调用结构对象数组

使用 makeStyles 在另一个选定的类中嵌套类