小编aba*_*hev的帖子

HttpClient - 任务被取消了?

当有一个或两个任务时它可以正常工作但是当我们列出了多个任务时会抛出错误"任务被取消".

在此输入图像描述

List<Task> allTasks = new List<Task>();
allTasks.Add(....);
allTasks.Add(....);
Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken);


private static Task<T> HttpClientSendAsync<T>(string url, object data, HttpMethod method, string contentType, CancellationToken token)
{
    HttpRequestMessage httpRequestMessage = new HttpRequestMessage(method, url);
    HttpClient httpClient = new HttpClient();
    httpClient.Timeout = new TimeSpan(Constants.TimeOut);

    if (data != null)
    {
        byte[] byteArray = Encoding.ASCII.GetBytes(Helper.ToJSON(data));
        MemoryStream memoryStream = new MemoryStream(byteArray);
        httpRequestMessage.Content = new StringContent(new StreamReader(memoryStream).ReadToEnd(), Encoding.UTF8, contentType);
    }

    return httpClient.SendAsync(httpRequestMessage).ContinueWith(task =>
    {
        var response = task.Result;
        return response.Content.ReadAsStringAsync().ContinueWith(stringTask =>
        {
            var json = stringTask.Result;
            return Helper.FromJSON<T>(json);
        }); …
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library dotnet-httpclient

170
推荐指数
6
解决办法
13万
查看次数

从路径获取文件夹名称

string path = "C:/folder1/folder2/file.txt";
Run Code Online (Sandbox Code Playgroud)

我可以使用哪些对象或方法来获得结果folder2

c# filesystems path

169
推荐指数
7
解决办法
22万
查看次数

Stream.Seek(0,SeekOrigin.Begin)或Position = 0

当您需要将流重置为开头(例如MemoryStream)时,最佳做法是使用

stream.Seek(0, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)

要么

stream.Position = 0;
Run Code Online (Sandbox Code Playgroud)

我看到两者都工作正常,但想知道一个人是否比另一个更正确?

.net c# stream

163
推荐指数
3
解决办法
5万
查看次数

获取Visual Studio以在每个构建上运行T4模板

如何获得T4模板以在每次构建时生成其输出?就像现在一样,它只在我对模板进行更改时才重新生成它.

我发现了类似的其他问题:

Visual Studio中的T4转换和构建顺序(未答复)

如何在Visual Studio中构建t4文件?(答案不够详细[虽然仍然很复杂]甚至没有完全意义)

必须有一个更简单的方法来做到这一点!

msbuild tfs t4 visual-studio

159
推荐指数
12
解决办法
6万
查看次数

团队构建错误:路径...已映射到工作区

在Team Foundation Server中创建新版本时,尝试运行新版本时出现以下错误:

路径C:\ Build\ProductReleases\FullBuildv5.4.2x\Sources已映射到工作空间BuildServer_23.

我无法在工作区对话框中看到该名称的工作区.

tfs tfs2008 build-server

157
推荐指数
10
解决办法
13万
查看次数

使用ASP.NET MVC数据类型属性验证电子邮件地址

我在验证电子邮件方面遇到了一些问题.

在我的模型中:

[Required(ErrorMessage = "Field can't be empty")]
[DataType(DataType.EmailAddress, ErrorMessage = "E-mail is not valid")]
public string ReceiverMail { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我看来:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@Html.TextBoxFor(m => m.ReceiverMail, new { @placeholder="E-mail"}) <br />
@Html.ValidationMessageFor(m => m.ReceiverMail)
Run Code Online (Sandbox Code Playgroud)

现在,当你将场留空时,它正确地向我显示"场不能为空".但是当你填写一个无效的电子邮件地址,如:"fwenrjfw",那么表格并没有说"电子邮件无效".

如何获取表单以将输入验证为电子邮件地址?我正在寻找一些帮助.

c# validation asp.net-mvc email-validation

157
推荐指数
7
解决办法
24万
查看次数

带有out参数的Func <T>

我可以将带有out参数的方法作为Func传递吗?

public IList<Foo> FindForBar(string bar, out int count) { }

// somewhere else
public IList<T> Find(Func<string, int, List<T>> listFunction) { }
Run Code Online (Sandbox Code Playgroud)

Func需要一个类型,因此不会在那里编译,并且调用listFunction需要一个int并且不允许输入.

有没有办法做到这一点?

.net c# linq generics func

156
推荐指数
3
解决办法
5万
查看次数

ASP.NET Web API中具有多个GET方法的单个控制器

在Web API中,我有一类类似的结构:

public class SomeController : ApiController
{
    [WebGet(UriTemplate = "{itemSource}/Items")]
    public SomeValue GetItems(CustomParam parameter) { ... }

    [WebGet(UriTemplate = "{itemSource}/Items/{parent}")]
    public SomeValue GetChildItems(CustomParam parameter, SomeObject parent) { ... }
}
Run Code Online (Sandbox Code Playgroud)

由于我们可以映射单个方法,因此在正确的位置获得正确的请求非常简单.对于只有一个GET方法但也有Object参数的类似类,我成功使用了IActionValueBinder.但是,在上述情况下,我收到以下错误:

Multiple actions were found that match the request: 

SomeValue GetItems(CustomParam parameter) on type SomeType

SomeValue GetChildItems(CustomParam parameter, SomeObject parent) on type SomeType
Run Code Online (Sandbox Code Playgroud)

我试图通过重写ExecuteAsync方法来解决这个问题ApiController但到目前为止没有运气.关于这个问题的任何建议?

编辑:我忘了提到现在我试图在ASP.NET Web API上移动此代码,它具有不同的路由方法.问题是,如何使代码在ASP.NET Web API上运行?

c# asp.net-web-api

156
推荐指数
9
解决办法
20万
查看次数

如何在SQL Server 2008中检查用户定义表类型的存在?

我有一个用户定义的表类型.我想在使用OBJECT_ID(name, type)函数编辑补丁之前检查它是否存在.

什么type枚举应传递用户定义的表类型?

N'U' 喜欢用户定义的表不起作用,即 IF OBJECT_ID(N'MyType', N'U') IS NOT NULL

sql t-sql sql-server user-defined-types sql-server-2008

154
推荐指数
5
解决办法
10万
查看次数

集合<T>与List <T>您应该在接口上使用什么?

代码如下所示:

namespace Test
{
    public interface IMyClass
    {
        List<IMyClass> GetList();
    }

    public class MyClass : IMyClass
    {
        public List<IMyClass> GetList()
        {
            return new List<IMyClass>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码分析时,我得到以下建议.

警告3 CA1002:Microsoft.Design:更改'IMyClass.GetList()'中的'List'以使用Collection,ReadOnlyCollection或KeyedCollection

我应该如何解决这个问题以及这里有什么好的做法?

.net c# collections code-analysis

152
推荐指数
3
解决办法
8万
查看次数