在我的C#代码中,我有一个类,它存储了一些我希望传递给List中的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");
Run Code Online (Sandbox Code Playgroud)
eventParser.py:
for e in events:
print e.EventId, " / ", e.EventName
Run Code Online (Sandbox Code Playgroud)
该MissingMemberException说"事件中没有名为EVENTID成员"
我已经测试通过其他类型的蟒蛇,包括原始类型,如列表List< int >和List< string >他们很好地工作.
那么我如何访问这些类属性,EventId并EventName在我的python脚本中?
Jon*_*eet 15
尝试将该Event课程公之于众.问题可能是虽然属性是公共的,但默认情况下类型是internal动态类型,因此动态类型不会"看到"仅由该类型声明的任何成员.
这只是一个猜测,如果它是错的,请说出来我可以删除答案,避免将来混淆任何人.通过在C#中的另一个程序集中动态键入,可以在一个程序集中使用匿名类型获得相同的效果.
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |