博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#与IronPython Clojure-clr的调用
阅读量:6900 次
发布时间:2019-06-27

本文共 976 字,大约阅读时间需要 3 分钟。

一,python

安装ironpython

新建控制台程序,引入

IronPython,Microsoft.Scripting

新建xxx.py文件

var u = new User() { Name = "test" };var engine = IronPython.Hosting.Python.CreateEngine(); var scope = engine.CreateScope();var source = engine.CreateScriptSourceFromFile("python/xxx.py");source.Execute(scope);var fun = scope.GetVariable("welcome");Console.WriteLine(fun(u));
 
加载了一个py文件,并且从中获取welcome这个方法,最后调用这个方法
传递的参数是一个c#类,需要在py中读取这个类的属性
 
import clrclr.AddReference('cslib')from cslib import *def welcome(u):    return "hello " + u.Name
 
 
 
 
 
 
 
 
 
(ns test.add) (defn add [a b]   (+ a b))
 
RT.load("add");var output = RT.var("test.add", "add");var x= Convert.ToInt32(output.invoke(1, 2));Console.WriteLine(x);
 
load对应文件名,var两个参数对应ns和方法名
向clj传递c#对象
var hello = RT.var("test.add", "hello");hello.invoke(u);

在clj里引入

(System.Reflection.Assembly/LoadWithPartialName "cslib")
 
访问属性 使用 (.属性名 实例)
(defn hello [u]  (print (.Name u)))
 
 
参考
 
 
 
 
两个都需要设置
 

转载于:https://www.cnblogs.com/czcz1024/p/3638664.html

你可能感兴趣的文章
麒麟开源堡垒机集中管控平台软件简介
查看>>
第十一单元练习
查看>>
从零开始的linux 第十六章
查看>>
EOS内存RAM是如何买卖的
查看>>
微服务架构中zuul的两种隔离机制实验
查看>>
电子合同将取代纸质合同吗?
查看>>
官宣丨“创客集结号”成功接入“广东省教育资源公共服务平台”!
查看>>
oracle教程之DML语句与undo
查看>>
mock.js与json schema
查看>>
转:Java properties | FileNotFoundException: properties (系统找不到指定的文件。)
查看>>
Cpp中流继承关系
查看>>
Angular CLI 使用教程指南参考
查看>>
[设计模式之禅读书笔记]001_设计模式六大原则(一):单一职责原则(Single Responsibility Principle)...
查看>>
CSAPP:cachelab(1)
查看>>
时间序列识别代码调试版本1
查看>>
Tomcat内存溢出解决办法
查看>>
Vue:v-model指令
查看>>
Software Engineering | Strategy pattern
查看>>
ios开发系列-准备工作
查看>>
Android Studio调试手机或者安装APK的时候出现install failed test only
查看>>