首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时调用bridge.net编译器

在运行时调用bridge.net编译器
EN

Stack Overflow用户
提问于 2018-08-22 15:48:19
回答 1查看 335关注 0票数 2

我正在设计一个应用程序,它需要在运行时创建一些C#类。我希望能够将这些类转换为javascript等价物。例如,我可能有一个C#类,它看起来像

代码语言:javascript
复制
public class Person
{
    public int Score { get; set; }
    public bool IsScoreValid()
    {//code in real implementation would be more complex and make use of various properties
        return Score > 0 && Score <= 100;
    }
}

这里的诀窍是,这里的Person类将根据某些配置在运行时创建。我无法控制IsScoreValid方法中的代码,而且在应用程序运行时它可能会改变。我只知道它是有效的C#代码。我需要一种健壮的方法来将该类转换为类似的javascript,并且我需要能够在运行时执行这种转换。Bridge.net是转换这个javascript的好方法吗?Bridge.net编译器可以在运行时调用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 18:11:55

如果可能的话?确实是这样,参见http://deck.net/。但不幸的是,该项目不是开源的。基本上,它是一个直接调用具有正确参数的Bridge.Translator.Translate()方法来构建文件的项目。

实现实时桥编译的web项目需要能够处理服务器端的调用,比如Asp.NET中的webservices (ashx),但是您也可以通过cgi-bin或linux/osx中的php来实现这一点,如果您进行命令行调用,或者连接包装器直接调用Bridge.Translator,则使用桥CLI。不过,要在Linux/osx上将其与Bridge.Translator链接起来,这需要是一个具有Mono功能的二进制文件。

虽然deck.net项目没有打开,但是桥本身是打开的,所以您可以完全访问如何从Bridge.Builder或桥CLI打开的项目调用桥的转换()方法。

但是,如果您希望代码不关心引用,比如缺少定义或IsScoreValid()的原型,那么使用桥将是一个问题。在接受调用之前,它至少需要对方法进行原型化和标记External;由于代码树是通过roslyn构建的,所以c#代码必须是完整的和可构建的。(否则,我们能称它为适当的C#吗?也许,在你的例子中,你并不需要完全成熟的C#)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51970616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档