惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
罗磊的独立博客
SecWiki News
SecWiki News
The Register - Security
The Register - Security
The GitHub Blog
The GitHub Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
IT之家
IT之家
博客园 - 聂微东
T
The Exploit Database - CXSecurity.com
Recorded Future
Recorded Future
大猫的无限游戏
大猫的无限游戏
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Vercel News
Vercel News
G
GRAHAM CLULEY
D
DataBreaches.Net
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
SegmentFault 最新的问题
博客园_首页
雷峰网
雷峰网
T
Tenable Blog
Spread Privacy
Spread Privacy
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
V
Visual Studio Blog
J
Java Code Geeks
博客园 - Franky
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
C
CERT Recently Published Vulnerability Notes
T
Threatpost
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
Recent Announcements
Recent Announcements
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
U
Unit 42
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
K
Kaspersky official blog
有赞技术团队
有赞技术团队
B
Blog
腾讯CDC

博客园 - 大约在冬季

如何在IronPython中使用C#扩展方法 LINQ入门教程示例使用F#的实现 宝宝照片更新喽 再谈两种不同字符串比较方法的性能对比 - 大约在冬季 - 博客园 如何让DevExpress.TreeList单元格中的自定义控件包含标签 见证中国A股市场:上午大盘加速寻底 沪指跌129点,探低至4241.02 漂亮宝宝100天啦!庆祝一下! F# 学习笔记(1/n) 权重股杀跌沪指半日破两关跌135点 IronPyton分析表达式 WCF服务契约 听课笔记 最近性能优化一些感触,分享中…… 两种不同字符串比较方法的性能对比 .Net 事件类型的实现和推荐做法 设计时支持:如何获取环境数据 运行Oracle数据库配置向导创建数据库失败ORA-24324的解决方案 C#3.0 自动属性——只能在简单属性上偷懒 性能——换个角度看问题 设计模式的滋味
如何在C#中调用 IronPython 代码 (基于IronPython 2.0A3)
大约在冬季 · 2007-08-10 · via 博客园 - 大约在冬季

前不久,IronPython发布了2.0A3,早期的1.1版本我早有耳闻,可是一直没有机会尝试使用。由于工作需要,今天尝试了一下。
在网上说的最多的就是在IronPython调用.Net的核心类库或其它的Assembly对象,却很少描述如何从C# 中调用IronPython。就算有也只是零零碎碎地只言片语,或者就是早期的1.1版本。
由于在两个版本中,C#中的调用方式上存在很大差别。所以费了不少周折。

1  PythonEngine pe = PythonEngine.CurrentEngine; //It requires to  analyze parameters.
2             IScriptModule sm = pe.CreateModule("Demo");
3             sm.SetVariable("x"1);
4             sm.SetVariable("y"2);
5             object s = pe.Evaluate("x>y", sm);

上面的代码演示了如何从C#中调用一个Lambda表达式然后返回结果,首先创建一个Python引擎,然后向模块中注册两个参数并设置Value(有些和CommandParameter对象相似),然后使用计算方法完成并返回调用结果。

但是这种调用方式存在一种弊端,就是必须主动的分析表达式中的参数个数,以便注册参数。更简单的方法我还在研究中,如果找到了,我会立刻更新文档,如果哪位朋友已经找了,还希望不惜赐教。