gpt4 book ai didi

c# - 在 IronPython 中访问 C# 类成员

转载 作者:太空狗 更新时间:2023-10-29 18:18:52 24 4
gpt4 key购买 nike

在我的 C# 代码中,我有一个类存储一些数据,我希望将这些数据传递给列表中的 python 代码。但是,当我尝试在我的 python 代码中访问该类的属性时,我得到 MissingMemberException .这里有一些示例代码来说明我的意思:

C#:

class Event
{
public int EventId { get; set; }
public string EventName { get; set; }
}

//other processing here...

//this just fills the list with event objects
List<Event> eventList = GetEvents();

//this sets a variable in the ScriptScope
PythonEngine.SetVariable( "events", eventList);

PythonEngine.Execute("eventParser.py");

事件解析器.py:

for e in events:
print e.EventId, " / ", e.EventName

MissingMemberException说“事件不包含名为 EventId 的成员”

我测试过将其他类型传递给 python,包括基本类型列表,如 List< int >List< string >他们工作正常。

那么我该如何访问这些类属性,EventIdEventName在我的 python 脚本中?

最佳答案

尝试公开 Event 类。问题可能是虽然 property 是公共(public)的,但 type 默认是 internal,所以动态类型不“可见”仅由该类型声明的任何成员。

这只是一个猜测,如果有错,请指出,以便我删除答案,以免将来混淆任何人。不过,通过在 C# 中的另一个程序集中使用动态类型在一个程序集中使用匿名类型,您确实会获得相同的效果。

关于c# - 在 IronPython 中访问 C# 类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com