小编bas*_*bas的帖子

如何使用HttpClient.PostAsync发送XML内容?

我正在努力实现这个休息api:

public async Task<bool> AddTimetracking(Issue issue, int spentTime)
{
    // POST /rest/issue/{issue}/timetracking/workitem
    var workItem = new WorkItem(spentTime, DateTime.Now);
    var httpContent = new StringContent(workItem.XDocument.ToString());
    var requestUri = string.Format("{0}{1}issue/{2}/timetracking/workitem", url, YoutrackRestUrl, issue.Id);
    var respone = await httpClient.PostAsync(requestUri, httpContent);
    if (!respone.IsSuccessStatusCode)
    {
        throw new InvalidUriException(string.Format("Invalid uri: {0}", requestUri));
    }

    return respone.IsSuccessStatusCode;
}
Run Code Online (Sandbox Code Playgroud)

workItem.XDocument 包含以下元素:

<workItem>
  <date>1408566000</date>
  <duration>40</duration>
  <desciption>test</desciption>
</workItem>
Run Code Online (Sandbox Code Playgroud)

我从API收到错误: Unsupported Media Type

我真的不知道如何解决这个问题,非常感谢帮助.如何使用HTTP POST URI 编组 XML文件HttpClient

c# post httpclient

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

Winforms调用异步方法挂起程序

我一直在解决这个问题,但现在我真的想了解出了什么问题.我有一个相当简单的应用程序(它是youtrack的turtoise SVN插件,但我可以用一个简单的winforms应用程序重现这个问题).

我有一个异步方法 ResolveIssue

public async Task<bool> ResolveIssue(Issue issue, int revision, string[] pathList)
{
    await Task.Delay(1000);

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

创建死锁所需要做的就是在Button事件处理程序中调用此异步方法,并调用Task.Wait或者Task.Result像这样

private void buttonOk_Click(object sender, System.EventArgs e)
{
    var asyncResolvedIssue = api.ResolveIssue(issue, revision, pathList);
    if (asyncResolvedIssue.Result) {} // <== deadlock!
}
Run Code Online (Sandbox Code Playgroud)

现在我明白拥有异步方法并主动等待它是相当奇怪的,但为什么会产生死锁?!

c# deadlock async-await

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

何时使用TaskCreationOptions.LongRunning?

我很想知道这一点,但从未真正找到答案.

我知道这是任务调度程序的一个提示,任务调度程序将在其中运行,并且任务调度程序可以(或现在将?)决定为该任务实例化非线程池线程.

我不知道(并且令人惊讶地在互联网上找不到)是一个"经验法则"何时指定一个长期运行的任务.是一秒多长?30秒?一分钟?5分钟?它是否与应用程序使用的任务量有关系?作为程序员,我应该使用线程池中的#threads进行一些计算,我创建了多少个任务,同时长时间运行了多少个任务,并根据这个来决定是否使用长时间运行的任务?

希望在这里学点东西.

c# multithreading task task-parallel-library

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

Azure存储入门:Blobs vs Tables vs SQL Azure

这是一个相当大的话题,blobs vs tables vs SQL,尽管我到目前为止所阅读的内容还是找不到适当的推理.

我们有一个多租户SaaS Web应用程序,我们即将迁移到Azure.我们使用SQL Server 2008数据库.我们存储属于文档的文档和日志信息.有点像Dropbox.

论坛声明,在考虑"大型"对象时,最好使用Azure表.我们通常每个用户存储数百个文档,文档大小从5kb到30mb不等,绝大多数都在1MB左右?

什么时候去Blob,Tables,Sql有什么基本规则?我已经知道我不应该将文档存储在SQL中,因为它太贵了.但是什么时候将文件存储在Blob中变得"有益",何时我会更好地使用表格?是否有某种公式如:

if (objects * MB/object * objectrequested > y) then blobs, else tables

azure azure-storage-blobs azure-table-storage azure-sql-database

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

如何在 Rider 中禁用“var”声明变量的变量类型提示?

在 Jetbrains Rider 中,“var”声明变量的类型默认显示为提示。我不想要这样。我怎样才能摆脱它?

在此输入图像描述

c# rider

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

无法加载文件或程序集"Microsoft.Practices.Unity"

我正在尝试升级Unity到版本(2.1.505.2),但是当我运行应用程序时,我得到以下内容FileLoadException

无法加载文件或程序集"Microsoft.Practices.Unity,Version = 2.0.414.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.

我们正在从Unity 2.0.414.0升级到2.1.505.2.

  • 引用Unity的解决方案中的所有项目引用都指向dll的正确版本
  • Gac中没有引用Unity dll.(通过检查双重检查gacutil -l)
  • 我从存档中删除了所有Unity dll.用powershell双重检查

    PS C:\> ls -rec -inc Microsoft.Practices.Unity.dll | foreach-object { "{0}`t{1}" -f $_.FullName, [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_).FileVersion }
    
    Run Code Online (Sandbox Code Playgroud)

如何找出仍然引用Unity 2.0.414.0的内容?

FusionLogVw没有告诉我哪个DLL导致了这个问题.

任何帮助深表感谢!

c# assembly-loading

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

是DbSet <>.本地使用什么特别小心?

几天来,我一直在努力从存储库(DbContext)中检索我的实体.

我试图在原子动作中保存所有实体.因此,不同的实体一起代表了我的一些有价值的东西.如果所有实体都是"有效",那么我可以将它们全部保存到数据库中.实体"a"已存储在我的存储库中,需要检索以"验证"实体"b".

这就是问题出现的地方.我的存储库依赖于DbSet<TEntity>与Linq2Sql一起工作的类(Include()例如导航属性).但是,DbSet<TEntity>它不包含处于"已添加"状态的实体.

所以我(据我所知)有两个选择:

  • 使用ChangeTracker以查看哪些实体可用,并根据它们将它们查询到一个集合中EntityState.
  • 使用该DbSet<TEntity>.Local属性.

ChangeTracker似乎涉及一些额外的努力工作,以使我可以使用Linq2Sql Include()导航属性,例如

DbSet<TEntity>.Local似乎有点怪我.它可能只是名字.我只是读了一些表现不佳的东西(比DbSet <>本身慢).不确定这是否是虚假陈述.

具有重要EntityFramework经验的人能否对此有所启发?什么是"明智"的道路?或者我看到了幽灵,我应该总是使用这个.Local属性吗?

使用代码示例更新:


出了什么问题的一个例子

    public void AddAndRetrieveUncommittedTenant()
    {
        _tenantRepository = new TenantRepository(new TenantApplicationTestContext());

        const string tenantName = "testtenant";

        // Create the tenant, but not call `SaveChanges` yet until all entities are validated 
        _tenantRepository.Create(tenantName);

        //
        // Some other code
        //

        var tenant = _tenantRepository.GetTenants().FirstOrDefault(entity => entity.Name.Equals(tenantName));

        // The tenant will …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework dbcontext dbset

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

无法同时指定约束类和"类"或"结构"约束

我试图解决一个嘲讽的问题,通过创建IDbSet自定义模拟.

自定义模拟:

public class DbSetMock : IDbSet<Tenant>
{
    /* hidden all other implemented methods/properties */

    public TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, Tenant
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

create方法给出了一个构建错误,我不知道如何解决:

不能同时指定约束类和'class'或'struct'约束

简单地class从约束中删除会导致另一个构建错误(我也不明白:()).

方法'Tests.DAL.Tenants.DbSetMock.Create <TDerivedEntity>()'的类型参数'TDerivedEntity'的约束必须与接口方法'System.Data.Entity.IDbSet <BusinessLayer'的类型参数'TDerivedEntity'的约束匹配. DAL.Tenants.Tenant> .Create <TDerivedEntity>()".请考虑使用显式接口实现.

有人可以帮我成功建立这门课吗?

c# generics

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

任务完成

我有一个创建多个任务的循环,如下所示.每个任务完成后,如何更新屏幕(使用某些数据向文本框添加新行)?

如何检测所有任务何时完成?

C#代码

 for (int i = 0; i < int.Parse(radTextBoxFloodRequests.Text); i++)
 {
      int x = i;
      // Create a task and supply a user delegate by using a lambda expression. 
      var taskA = new Task(() => TaskRequest(int.Parse(radTextBoxFirstNumber.Text), int.Parse(radTextBoxSecondNumber.Text), int.Parse(radTextBoxFloodDelay.Text), x));
      // Start the task.
      taskA.Start();
 }


 private void TaskRequest(int number1, int number2, int delay, int count)
 {
      // Some long running method
 }
Run Code Online (Sandbox Code Playgroud)

c# multithreading task threadpool

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

仅当某些条件为真时才通过Binding使TextBlock Bold

我怎样才能定义TextBlockFontStyle是勇敢的,通过Binding一个bool

<TextBlock 
   Text="{Binding Name}"
   FontStyle="???">
Run Code Online (Sandbox Code Playgroud)

我真的很想把它绑定

public bool NewEpisodesAvailable
{
    get { return _newEpisodesAvailable; }
    set
    {
        _newEpisodesAvailable = value;
        OnPropertyChanged();
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一点,或者我的Model属性应该为我做翻译,而不是直接呈现bool礼物FontStyle

wpf binding

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