Я прочитал некоторые ответы на ваш предыдущий вопрос.Одна статья, на которую ссылается Кевин, отвечает на ваш вопрос.Это было на Руби, так что, возможно, вы не читали это.Я не знаю много о DLR, но я думаю, что его цель - сделать доступ единообразным, поэтому тот же код должен работать с Python.
В любом случае, http://www.highoncoding.com/Articles/573_First_Look_at_the_IronRuby.aspx дает пример .NET 4.0в C #, который использует dynamic
, чтобы сделать взаимодействие очень простым.Зеркальное отражение примера C, который вы привели, и последующее из кода Брайана:
//Brian's code goes here, but C#-ified with `var` instead of `let`
engine.Execute();
object personClass = engine.Runtime.Globals.GetVariable("Person");
dynamic person = engine.Operations.CreateInstance(personClass);
person.greet();
Это основано на коде Ruby:
class Person
def greet()
puts 'hello world'
end
end
Я предполагаю, что эквивалентный Python может быть доступенточно так же.Я не знал, что вы могли бы сделать это с DLR, пока я не прочитал статью, которая была связана с вашим предыдущим вопросом.Довольно интересно, что взаимодействие с C # так просто.(Хотя я бы на самом деле не хотел dynamic
в F #, потому что код F # выдает гораздо более статичный вид.)