我正在为我的产品搜索脚本语言,这将允许轻松定制.
我已经构建了自己的基于XML的小语言,但我对这个解决方案并不满意:
<ScrArp>
<StaticClass Name="Root">
<Method Return="Void" Name="Main">
<Call Method="Print" Text="Hello World" />
<Declare Type="SampleClass" Name="myInstance">
<Set>
<NewInstance Type="SimpleClass" />
</Set>
</Declare>
<Call Text="Hello 123">
<Instance Name="myInstance">
<!-- <Instance Name="mySample2..."> -->
<Method Name="TestMethod" />
<!-- </Instance> -->
</Instance>
</Call>
</Method>
</StaticClass>
<Class Name="SampleClass">
<Method Return="Void" Name="TestMethod">
<Parameter>
<Declare Type="String" Name="Text" />
<Parameter>
<Call Method="Print">
<Text>
<Get Name="Text" />
</Text>
</Call>
</Method>
<Method Return="String" Name="Method2">
<Declare Type="String" Name="cReturnValue" />
<Set>
<Instance Name="cReturnValue" />
<Value>
<Call>
<Instance Name="cReturnValue" />
</Call>
<Value>
</Set>
<Return>
<Instance Name="cReturnValue" />
<Return>
</Method>
</Class>
</ScrArp>
Run Code Online (Sandbox Code Playgroud)
我之前使用过Lua和IronPython,但我不太喜欢Lua,据我所知,IronPython只支持社区.
现在我的问题.哪个是C#脚本编写的最佳解决方案? - IronPython - Lua - 我自己的小语言?
谢谢!
如果你想艰难前行,我建议你花费大约6个月左右的时间来编写自己的"编译器".如果您想要一种更简单的方法,我建议您使用实际的C#语言提供脚本,并使用CodeDOM进行编译和执行.
为了正确使用生成/编译的程序集,我建议您强制最终用户使用接口,并在应用程序中使用依赖注入.
编辑:
在您对问题进行编辑之后.说实话,我对Lua或IronPython都没有任何线索,但我肯定知道的事情:你永远不应该尝试重新发明轮子.不要尝试编写自己的语言.我记得花了3个月的时间尝试编写我自己的小型ORM(SQL Generator for Dapper)最终突然发现ServiceStack ORMLite,它比我的代码更好,并提供更高的性能.
正如我之前所解释的,我真的建议使用C#(因为你也在你的应用程序中使用它).
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |