我已经阅读了一些SO帖子,似乎缺少最基本的操作.
public enum LoggingLevel
{
Off = 0,
Error = 1,
Warning = 2,
Info = 3,
Debug = 4,
Trace = 5
};
if (s == "LogLevel")
{
_log.LogLevel = (LoggingLevel)Convert.ToInt32("78");
_log.LogLevel = (LoggingLevel)Enum.Parse(typeof(LoggingLevel), "78");
_log.WriteDebug(_log.LogLevel.ToString());
}
Run Code Online (Sandbox Code Playgroud)
这没有例外,它很乐意存储78.有没有办法验证进入枚举的值?
我正在编写一个返回JSON的代码的单元测试.它返回的类型是匿名类型,所以我想验证它上面的值我只是将对象转换为a dynamic来做我的断言.
但是,当我这样做时,我的构建失败但我没有任何错误消息.我能够在新的单元测试项目中使用非常简单的代码重现这一点:
[TestMethod]
public void TestMethod1()
{
var obj = new { someValue = true };
dynamic asDynamic = obj;
Assert.IsTrue(asDynamic.someValue);
}
Run Code Online (Sandbox Code Playgroud)
请参阅下面的构建失败的屏幕截图
当我注释掉断言时,构建成功:
相比之下,我在LinqPad 5 beta(使用Roslyn编译器)中运行了以下代码并且没有任何问题:
var obj = new { someValue = true };
dynamic asDynamic = obj;
Console.WriteLine((asDynamic.someValue == true).ToString());
Run Code Online (Sandbox Code Playgroud)
真正
这里发生了什么?由于错误没有显示我不能说,如果我用dynamic,不正确,或者如果它不能找到使用过载IsTrue()的,因为dynamic,或者如果这是在编译器中的错误(虽然我很怀疑这个,我没有任何证据证明我的代码有问题).
关于过载问题,我试过Assert.IsTrue((bool)asDynamic.someValue);但是构建仍然失败,仍然没有错误消息.
根据Per @ RonBeyer的评论,我也尝试过更多的演员,如下所示无济于事:
dynamic asDynamic = (dynamic)obj;
Assert.IsTrue(((dynamic)asDynamic).someValue);
Assert.IsTrue((bool)asDynamic.somevalue);
Run Code Online (Sandbox Code Playgroud)
经过仔细检查,我发现输出窗口中列出了一个错误:
c:...\DynamicBuildFailTest\UnitTest1.cs(16,33,16,42):错误CS0656:缺少编译器所需的成员'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
好的,VS2013更善于报告错误,我会根据这些搜索:
好的,添加对Microsoft.CSharp的引用修复了构建错误,但我会将此问题保持打开状态,因为它可能是VS2015的一个问题(在我看来)应该解决.
我在VS2015 RC中的Razor视图没有显示C#代码的正确着色.我的项目在VS2013中运行良好,但它不是在2015年,而且它没有给我任何关于C#代码的Intellisense.解决方案构建,网站运行正常.
我尝试了以下无济于事
.suo文件我怎样才能解决这个问题?
例:

我在尝试使用不显眼的jquery验证来处理通过AJAX调用动态加载的局部视图时遇到问题.
我花了几天时间试图让这段代码运转起来没有运气.
这是视图:
@model MvcApplication2.Models.test
@using (Html.BeginForm())
{
@Html.ValidationSummary(true);
<div id="res"></div>
<input id="submit" type="submit" value="submit" />
}
Run Code Online (Sandbox Code Playgroud)
部分视图:
@model MvcApplication2.Models.test
@Html.TextAreaFor(m => m.MyProperty);
@Html.ValidationMessageFor(m => m.MyProperty);
<script type="text/javascript" >
$.validator.unobtrusive.parse(document);
</script>
Run Code Online (Sandbox Code Playgroud)
该模型:
public class test
{
[Required(ErrorMessage= "required field")]
public int MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制者:
public ActionResult GetView()
{
return PartialView("Test");
}
Run Code Online (Sandbox Code Playgroud)
最后,javascript:
$(doument).ready(function () {
$.ajax({
url: '/test/getview',
success: function (res) {
$("#res").html(res);
$.validator.unobtrusive.parse($("#res"));
}
});
$("#submit").click(function () {
if ($("form").valid()) {
alert('valid');
return true;
} …Run Code Online (Sandbox Code Playgroud) 我有共同的问题。
无法将 Kind=UTC 的 DateTime 写入 PostgreSQL 类型“不带时区的时间戳”
我想启用旧版时间戳行为,如下所示: https: //github.com/npgsql/doc/blob/main/conceptual/Npgsql/types/datetime.md/
public MyDbContext(DbContextOptions<MyDbContext> contextOptions) : base(contextOptions)
{
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
}
Run Code Online (Sandbox Code Playgroud)
但不起作用。我仍然遇到同样的错误。
我做错了什么。为什么遗留行为不起作用?
我正在使用节点async lib - https://github.com/caolan/async#forEach,并希望迭代一个对象并打印出它的索引键.一旦完成,我想执行回调.
这是我到目前为止,但'iterating done'从未见过:
async.forEach(Object.keys(dataObj), function (err, callback){
console.log('*****');
}, function() {
console.log('iterating done');
});
Run Code Online (Sandbox Code Playgroud)
为什么不调用最终函数?
如何打印对象索引键?
如何合并两个匿名类型,以便结果包含两个源对象的属性?
var source1 = new
{
foo = "foo",
bar = "bar"
}
var source2 = new
{
baz = "baz"
}
var merged = Merge(source1, source2) // <-- here's where the magic should happen
// merged:
// {
// foo = "foo",
// bar = "bar",
// baz = "baz"
// }
Run Code Online (Sandbox Code Playgroud) 为什么内联数组初始化比迭代这样慢得多?我运行这个程序来比较它们,单个初始化比使用for循环这样做要花费很多倍.
这是我写的LinqPad测试程序.
var iterations = 100000000;
var length = 4;
{
var timer = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < iterations; i++){
var arr = new int[] { 1, 2, 3, 4 };
}
timer.Stop();
"Array- Single Init".Dump();
timer.Elapsed.Dump();
}
{
var timer = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < iterations; i++){
var arr = new int[length];
for(int j = 0; j < length; j++){
arr[j] = j;
}
}
timer.Stop();
"Array- Iterative".Dump();
timer.Elapsed.Dump(); …Run Code Online (Sandbox Code Playgroud) 我试图找出是否可以使用iTextSharp阅读PDF表格数据(表格填写并随表格保存).我怎样才能做到这一点?
c# ×7
asp.net-mvc ×2
.net ×1
.net-6.0 ×1
arrays ×1
asp.net ×1
asynchronous ×1
enums ×1
forms ×1
html ×1
itext ×1
loops ×1
node-async ×1
node.js ×1
npgsql ×1
object ×1
pdf ×1
performance ×1
razor ×1
roslyn ×1