我发现我无法轻易地从另一个脚本库加载:
module.csx
string SomeFunction() {
return "something";
}
Run Code Online (Sandbox Code Playgroud)
script.csx
ExecuteFile("module.csx");
SomeFunction() <-- causes compile error "SomeFunction" does not exist
Run Code Online (Sandbox Code Playgroud)
这是因为编译器在编译script.csx afaiu时不知道module.csx.我可以添加另一个脚本来加载那个文件中的两个文件,这样就行了.不过那不是那么漂亮.
相反,我喜欢在脚本中检查脚本中的特殊语法"load module",并在实际脚本执行之前执行这些模块.
script.csx
// load "module.csx"
SomeFunction()
Run Code Online (Sandbox Code Playgroud)
现在,通过一些基本的字符串处理,我可以确定要加载哪些模块(包含// load的行...)并加载这些文件(请点击https://gist.github.com/4147064):
foreach(var module in scriptModules) {
session.ExecuteFile(module);
}
return session.Execute(script)
Run Code Online (Sandbox Code Playgroud)
但是 - 既然我们正在谈论Roslyn,那么应该有一些很好的方法来解析我正在寻找的语法脚本,对吧?
它甚至可能存在一种处理模块代码库的方法?
我喜欢有条件地将标签放在某些内容之外的指令(但始终打印内容),如下所示:
<p><strong ng-if-always-keep-inner-content="model.condition">{{model.text}}</strong>/p>
Run Code Online (Sandbox Code Playgroud)
所以如果条件是真的我得到
<p><strong>yada yada</strong></p>
Run Code Online (Sandbox Code Playgroud)
否则我明白了
<p>yada yada</p>
Run Code Online (Sandbox Code Playgroud)
我可以自己编写,但我想知道是否可以使用内置指令/选项.
我或许应该说这与Bootstrap一起使用,afaiu建议使用<strong> vs某些带粗体字的类.
在Asp Net数据绑定控件中,可以使用漂亮的Eval()语法:
<div><%# Eval("MyProp") %></div>
Run Code Online (Sandbox Code Playgroud)
但是它不可能与条件语句结合使用吗?:
<% if (Eval("MyProp")!="") { %>
<div><%# Eval("MyProp") %></div>
<%} %>
Run Code Online (Sandbox Code Playgroud)
有这个选择会很高兴.
所以 - 我的选择是将部分标记放在CodeBehind中.我真的很喜欢把它放在那里.还有其他可能吗?
我试图用Simple.Data.SimpleRecord做一些映射,并试图遍历成员:
foreach (string memberName in Model.GetDynamicMemberNames())
{
Console.Write Model.GetValueByMemberName(memberName); // or something
}
Run Code Online (Sandbox Code Playgroud)
GetDynamicMemberNames()工作正常 - 但我没有找到GetValueByMemberName(),Member [].值或类似.它是一个DynamicObject,所以也许有一些我缺少的内置方法.
PS我在这里错过了一个SimpleData标签.它会很大:-) https://github.com/markrendle/Simple.Data
我是否必须在c#中"双重声明"每个新实例?
Obj sb = new Obj();
Run Code Online (Sandbox Code Playgroud)
VB比较便宜
Dim sb as new Obj()
Run Code Online (Sandbox Code Playgroud)
和Python最便宜
sb=Obj()
Run Code Online (Sandbox Code Playgroud)