小编dan*_*ich的帖子

无法在控制台应用程序的"Main"方法上指定"async"修饰符

我是使用async修饰符进行异步编程的新手.我试图弄清楚如何确保我Main的控制台应用程序的方法实际上异步运行.

class Program
{
    static void Main(string[] args)
    {
        Bootstrapper bs = new Bootstrapper();
        var list = bs.GetList();
    }
}

public class Bootstrapper {

    public async Task<List<TvChannel>> GetList()
    {
        GetPrograms pro = new GetPrograms();

        return await pro.DownloadTvChannels();
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是从"顶部"异步运行的.由于无法asyncMain方法上指定修饰符,如何在main异步中运行代码?

.net c# asynchronous console-application

415
推荐指数
10
解决办法
18万
查看次数

值不能为空.参数名称:source

这可能是我花了好几个小时解决很长时间的最大浪费时间问题.

var db = new hublisherEntities();
establishment_brands est = new establishment_brands();

est.brand_id = 1;
est.establishment_id = 1;
est.price = collection["price"];
est.size = collection["size"];

db.establishment_brands.Add(est);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误

值不能为空.参数名称:source

堆栈跟踪

[ArgumentNullException:Value不能为null.参数名称:source] System.Linq.Enumerable.Any(IEnumerable 1 source, Func2 predicate)+4083335 System.Data.Entity.Internal.InternalContext.WrapUpdateException(UpdateException updateException)+87
System.Data.Entity.Internal.InternalContext.SaveChanges()+ 193
System.Data.Entity.Internal.LazyInternalContext.SaveChanges()+ 33
System.Data.Entity.DbContext.SaveChanges()+20 ......

我只想在表中添加一个实体.ORM是EF.

c# asp.net-mvc entity-framework

113
推荐指数
6
解决办法
24万
查看次数

读两次流?

当我从我的网站上传图像时,我需要做两件事:

  1. 阅读图像尺寸
  2. 将图像保存到数据库

我做的第一件事是将图像流读入Image对象,如下所示:

var file = Request.Files["logo"];

Image FullsizeImage = Image.FromStream(file.InputStream);
Run Code Online (Sandbox Code Playgroud)

我接下来要做的是将"文件"对象保存到数据库(LINQ to SQL).但是,当我尝试将图像保存到数据库时,来自文件的流在流的末尾有它的位置,似乎没有数据存在.

我知道我应该重新设置流并将其重新置于0位置,但我该如何做到最有效率和最正确的方式呢?

c#

26
推荐指数
1
解决办法
2万
查看次数

Elmah日志文件删除,手动还是有设置?

如何删除Elmah在服务器上生成的日志文件?

Elmah中是否有可用于删除日志文件的设置?我更愿意指定一些标准(例如,超过30天的日志文件).

或者我应该为此编写自己的代码?

asp.net-mvc elmah

19
推荐指数
1
解决办法
9232
查看次数

CRUD操作; 你告知插入,更新等是否进展顺利?

我有一个简单的问题(我希望):)

在对数据执行CRUD操作时,我几乎总是使用void作为"返回"类型.

例如.考虑以下代码:

public void Insert(IAuctionItem item) {
    if (item == null) {
        AuctionLogger.LogException(new ArgumentNullException("item is null"));
    }

    _dataStore.DataContext.AuctionItems.InsertOnSubmit((AuctionItem)item);
    _dataStore.DataContext.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

然后考虑这段代码:

public bool Insert(IAuctionItem item) {
    if (item == null) {
        AuctionLogger.LogException(new ArgumentNullException("item is null"));
    }

    _dataStore.DataContext.AuctionItems.InsertOnSubmit((AuctionItem)item);
    _dataStore.DataContext.SubmitChanges();

    return true;
}
Run Code Online (Sandbox Code Playgroud)

它实际上只取决于你是否应该通知插入的东西(并且进展顺利)?

c#

7
推荐指数
1
解决办法
488
查看次数

在visual studio编辑器中检测活动

我想知道是否有一个以编程方式挂钩到visual studio编辑器,以便我可以确定是否有人在编辑器中输入.

谢谢!

.net editor visual-studio-2010 visual-studio vsix

4
推荐指数
1
解决办法
287
查看次数

传递到字典中的模型项是类型的

我有一个我理解的错误,但无法想出以正确的方式解决.

我有一个MasterPage,从那个MasterPage我打电话:

<% Html.RenderPartial("Tags"); %>
Run Code Online (Sandbox Code Playgroud)

Tags是一个强类型视图,如下所示:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<JegManglerEn.Controllers.CategoryCount>>" %>
Run Code Online (Sandbox Code Playgroud)

我像这样返回PartialView:

return View("Tags", result);
Run Code Online (Sandbox Code Playgroud)

结果是正确的和类型:

List<CategoryCount>
Run Code Online (Sandbox Code Playgroud)

错误是这样的:

传递到字典中的模型项的类型为'System.Collections.Generic.List 1[JegManglerEn.Item]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1 [JegManglerEn.Controllers.CategoryCount]'.

所以设置如下:

MasterPage加载一个带有JegManglerEn.Item集合的View,并尝试加载一个带有JegManglerEn.Controllers.CategoryCount集合的PartialView ......但是没有这样做.

我知道它与RenderPartial方法有关,因为如果我将它改为RenderAction,它的效果很好.

如果你们有答案,我可以跳过查看MVC soruce或启动Reflector.

谢谢!

asp.net-mvc

3
推荐指数
1
解决办法
6927
查看次数

属性是readonly,但成员可访问

为什么我可以像这样实现只读属性...

public IList<object> SelectedItems { get; }
Run Code Online (Sandbox Code Playgroud)

...当我使用该属性时,仍然可以使用其成员,如添加,删除等?

是不是应该只读"一路向下"?

.net c#

3
推荐指数
1
解决办法
196
查看次数

使用jquery和html字符串查找每个链接

我想在这个HTML字符串中找到每个"a"标签

$(document).ready(function(data) {
    $.get('test.html',
        function(responseText){
        //find each a tag   
        }, "html"
    )
});
Run Code Online (Sandbox Code Playgroud)

为什么这对我来说太难了?

javascript jquery

2
推荐指数
1
解决办法
2573
查看次数

异步方法返回相同的值

我现在已经盯着自己,所以请帮忙.

当我在循环内调用此方法两次时,它返回相同的值.为什么?

public async Task<int> RollDice() {
    var rnd = new Random();
    var selected = 0;

    await Task.Run(() => {
        selected = rnd.Next(1, 6);
        });

    return selected;
}
Run Code Online (Sandbox Code Playgroud)

c# random async-await

2
推荐指数
1
解决办法
800
查看次数

从JavaScript和XML中的selectNodes获取属性?

我试图从JavaScript中获取XML节点的属性.

item.selectNodes( "圈地[@url]")

这不像我想的那样工作:(

任何提示?

谢谢!

javascript xml xpath

1
推荐指数
1
解决办法
1805
查看次数

CLR之间的差异

在我试图理解引用程序集以及CLR如何处理它们时,我对实际有多少不同的.NET CLR有点困惑.

查看.NET Metro配置文件,其中API由winmd文件投影,稍后通过引用程序集在.NET中处理,CLR的哪个版本/种类正在处理这个问题?

它似乎与Silverlight配置文件和Windows Phone配置文件的机制相同,因此为每个配置的CLR都会加载相同的CLR,但只会公开相关的API,具体取决于您的目标.

是否有意义 ?

.net windows clr

1
推荐指数
1
解决办法
730
查看次数

在Windows上的Apache/IIS上使用microtime的奇怪时间格式

<?php
    $start = microtime(true);
    $end = microtime(true);
    echo $end - $start;
?>
Run Code Online (Sandbox Code Playgroud)

为什么这段代码会产生如下结果:

1.1920928955078E-5,
5.9604644775391E-6,
6.9141387939453E-6
Run Code Online (Sandbox Code Playgroud)

E-5和E-6是什么意思?

为什么差异如此之大?从1.2秒到6.9秒?

php

0
推荐指数
1
解决办法
846
查看次数