2

我在 Windows 7 上有一个作为引擎运行的 ac# 类(不要问什么或为什么,只需将其视为另一个优化库)。

我不会说 c#,但我可以阅读 API 文档并创建应该可以发送到 c# 库的 scriptEngine 的单个命令。

这里有些例子:

示例 1:

var someunit = context.CreateUnit("someunit", 10)
someunit.Volume = 1;
someunit.Weight = 3;

示例 2:

for (int i = 1; i < 14; i++ )
{
    context.CreateEvent(someunit, currentTime.AddDays(i), SpaceShip, 100);
    context.CreateEvent(someunit, currentTime.AddDays(i), SpaceShip, 100);
    context.CreateEvent(someunit, currentTime.AddDays(i), SpaceShip, 100);
}

示例 3:

while (true)
{
    if (Engine.State == Engine.Finished)
    {
     //Do something when engine stops
        break;
    }
}

IPython 完成了我需要做的 98% 的工作,但在这一点上我被卡住了。有什么方法可以使用 aconnectObject或者import dotNetMagic我可以使用 python 语法生成这些字符串并与 c# scriptEngine 交互?

事后思考:如果可以避免 scriptEngine 并且我可以直接与 API 通信,那将是双重奖励。

4

2 回答 2

0

我想我不太确定您要做什么,但似乎您要么想要某种interop ,这在我看来很难看。:-)

您可能会考虑在两者之间进行一些 UDP 或TCP 通信。这是一种非常标准的方法。我想这是我首先要探索的路线。

于 2013-11-11T06:31:04.160 回答
0

您可以使用管道在两个系统之间进行通信。C# 和 Python 都支持它们。

有关管道的讨论,请参阅此链接:http ://social.msdn.microsoft.com/Forums/en-US/c9eb8804-46e7-4207-b7fc-fc68f965566f/communication-between-python-and-c?forum=csharpgeneral

另请参阅此 SO:通过 C# 和 cPython 之间的管道交换数据

于 2013-11-08T15:34:57.770 回答