我正在从数据库加载IronPython脚本并执行它.这适用于简单的脚本,但导入是一个问题.如何拦截这些导入调用,然后从数据库加载适当的脚本?
编辑:我的主要应用程序是用C#编写的,我想在不编辑Python脚本的情况下拦截C#端的调用.
编辑:从我已经完成的研究来看,创建自己的PlatformAdaptationLayer看起来就像你应该实现它的方式,但它在这种情况下不起作用.我已经创建了自己的PAL,在我的测试中,我的FileExsists方法会在脚本中的每次导入时被调用.但由于某种原因,它永远不会调用该OpenInputFileStream方法的任何重载.通过IronPython源,一旦FileExists返回true,它就会尝试在路径上找到文件本身.所以这看起来像死路一条.
我一直在寻找这个问题的答案,但似乎找不到令人满意的答案。也许有人可以启发我。
我有一个后代,BindingList<T>用于存储对SynchronizationContext对象的引用,以在UI线程上引发其更改的事件。
现在,也有可能BindingList<T>在UI线程而不是后台线程上创建和使用它。没有InvokeRequired可用的财产该如何检查?调用SynchronizationContext.SendUI线程会有什么后果?
c# multithreading invokerequired winforms synchronizationcontext