Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Integration of C#, F#, IronPython and IronRuby

I was told that the assembly files made from C# and F# source is interoperable as they are compiled into .NET assembly.

  • Q1 : Does that mean that C# can call F# functions just like they are C# functions?
  • Q2 : How about the IronPython and IronRuby? I don't see any assembly dll from the IronPython/IronRuby.
  • Q3 : Is there any easy way to use IronPython/IronRuby functions from C# or F#?

Any example code would be great.

like image 664
prosseek Avatar asked Jun 03 '10 19:06

prosseek


1 Answers

1) Yes. Using a simple example, in F#, I can invoke the main method of a C# console app:

open SampleApp

SampleApp.Program.Main([| "Hello"; "World" |])

2) For the DLR, I think things are a bit different. I believe this is how you would execute Python (for example);

ScriptEngine engine = Python.CreateEngine();
ScriptSource script = engine.CreateScriptFromSourceFile("myPythonScript.py");
ScriptScope scope = engine.CreateScope();

script.Execute(scope);

My syntax may be off a bit - but you should be able to get the gist.

3) You need to download some special DLR DLLs - and then reference them in your C# / F# application in order to be interoperable. They should be available from the Microsoft DLR site.

like image 148
Tejs Avatar answered Sep 20 '22 07:09

Tejs