我修改了昨天发布的新版Roslyn附带的示例,以使用动态和ExpandoObject,但我收到编译器错误,我不知道如何修复.错误是:
(7,21):错误CS0656:缺少编译器所需的成员'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
你能否在新的编译器中使用动态?我怎样才能解决这个问题?以下是我更新的示例:
[TestMethod]
public void EndToEndCompileAndRun()
{
var text = @"using System.Dynamic;
public class Calculator
{
public static object Evaluate()
{
dynamic x = new ExpandoObject();
x.Result = 42;
return x.Result;
}
}";
var tree = SyntaxFactory.ParseSyntaxTree(text);
var compilation = CSharpCompilation.Create(
"calc.dll",
options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary),
syntaxTrees: new[] {tree},
references: new[] {new MetadataFileReference(typeof (object).Assembly.Location), new MetadataFileReference(typeof (ExpandoObject).Assembly.Location)});
Assembly compiledAssembly;
using (var stream = new MemoryStream())
{
var compileResult = compilation.Emit(stream);
compiledAssembly = Assembly.Load(stream.GetBuffer());
}
Type calculator = compiledAssembly.GetType("Calculator");
MethodInfo evaluate …
Run Code Online (Sandbox Code Playgroud) 有没有办法可以在测试方法的结果中添加自定义消息?我想在代码的一部分上放一个秒表,看看它的运行时间.我不需要测试它是否在某个时间范围内运行,只是想在结果窗口中看到经过的时间是多少.
是否可以在模板中创建类?就像是...
@{
public class MyClass {
public MyClass() {
Three = new List<string>();
}
public string One { get; set; }
public int Two { get; set; }
public List<string> Three { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
目前我得到"无法编译模板.请查看错误列表以获取详细信息." 当我试着这样做的时候.我想获取XML内容并使用XmlSerializer在模板中创建MyClass的实例.我不能事先进行反序列化并将其推入模型中,因为类可能因模板而异.
有谁知道如何设置平均值的默认值?我有这样一条线......
dbPlugins = (from p in dbPlugins
select new { Plugin = p, AvgScore = p.DbVersions.Average(x => x.DbRatings.Average(y => y.Score)) })
.OrderByDescending(x => x.AvgScore)
.Select(x => x.Plugin).ToList();
Run Code Online (Sandbox Code Playgroud)
由于我还没有收视率,因此会引发错误.如果我没有,我希望平均值默认为0.我认为这应该是一个扩展方法,我可以指定默认值应该是什么.
有没有办法为WP7应用程序添加配置文件,例如Windows应用程序和Web应用程序?我只需要一种简单的方法来保存一些设置,我宁愿不创建自己的对象,也必须序列化/反序列化一个xml文件.似乎没有任何类型的项目模板可以添加到我的项目中,所以只是想知道是否有人在最佳方式上做了这个或一个想法?
是否可以使用JavaScript或jQuery手动更新UpdatePanel?
我所拥有的是我页面顶部的TextBox.当用户离开TextBox我想运行一些服务器代码(它会将记录添加到我的数据库),然后在页面底部我有一个UpdatePanel,它将被刷新.UpdatePanel有一个GridView,它将为添加的记录添加一个条目)
如果我创建了一个属性:
public class TableAttribute : Attribute {
public string HeaderText { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在课堂上申请了一些我的房产
public class Person {
[Table(HeaderText="F. Name")]
public string FirstName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的视图中,我有一个显示在表格中的人员列表..如何检索HeaderText的值以用作我的列标题?就像是...
<th><%:HeaderText%></th>
Run Code Online (Sandbox Code Playgroud) 我有一个WinForms应用程序,代码如下:
static void Main()
{
IKernel kernel = new StandardKernel(new MyModule());
TestInterface test = kernel.Get<TestInterface>();
}
Run Code Online (Sandbox Code Playgroud)
对于Module.Load()事件:
Bind<TestClass>().ToSelf().InSingletonScope();
Bind<TestInterface>().To<TestClass>();
Run Code Online (Sandbox Code Playgroud)
此时test
的Main()
方法是我期待适当的对象.
在稍后的表单中,我正在使用属性注入:
[Inject]
TestInterface test {get;set;}
Run Code Online (Sandbox Code Playgroud)
一旦表单被加载,尝试使用test
,但它是一个空对象.
思考?
我正在使用jquery tmpl在表中显示一堆结果.其中一个是我在模板中输出的日期:
<td class="textAlignRight">${EffectiveDate}</td>
Run Code Online (Sandbox Code Playgroud)
但它的格式为"/ Date(1245398693390)/".如何更改它,使其格式化为m/dd/yyyy h:mm tt?
我在ko 2.0中使用无容器流量控制.当我更新observableArray中的项目时,它不会更新UI.我正在更新这样的数组:
this.editFormHost = function (formHost) {
...
formHost.HostName = newHostName;
this.formHosts[index] = formHost;
}
Run Code Online (Sandbox Code Playgroud)
我认为它不会更新,因为通过索引更新数组不会调用ko中的任何内容.从查看文档看起来没有更新对象的方法,而这些方法又会更新UI.还是有吗?
c# ×7
.net ×2
javascript ×2
jquery ×2
asp.net ×1
average ×1
json ×1
knockout.js ×1
linq ×1
mstest ×1
ninject ×1
razor ×1
roslyn ×1
sql ×1
templates ×1
unit-testing ×1
updatepanel ×1
windows ×1
winforms ×1
xaml ×1