javascript

java

python

c#

node.js

reactjs

android

php

c++

ruby-on-rails

html

jquery

git

css

ios

sql

.net

c

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

string

c# - TransactionScope如何回滚交易?

我正在编写集成测试,我将把一些对象插入数据库,然后检查以确定我的方法是否检索这些对象。

我与数据库的连接是通过NHibernate ...而我创建这样一个测试的常用方法是执行以下操作:

NHibernateSession.BeginTransaction();

//use nhibernate to insert objects into database
//retrieve objects via my method
//verify actual objects returned are the same as those inserted

NHibernateSession.RollbackTransaction();

但是,我最近发现了TransactionScope,它显然可以用于这个目的......

我发现的一些示例代码如下:

public static int AddDepartmentWithEmployees(Department dept)
{

    int res = 0;

    DepartmentAdapter deptAdapter = new DepartmentAdapter();
    EmployeeAdapter empAdapter = new EmployeeAdapter();
    using (TransactionScope txScope = new TransactionScope())
    {

        res += deptAdapter.Insert(dept.DepartmentName);
        //Custom method made to return Department ID 
        //after inserting the department "Identity Column"
        dept.DepartmentID = deptAdapter.GetInsertReturnValue();
        foreach(Employee emp in dept.Employees)
        {

            emp.EmployeeDeptID = dept.DepartmentID;
            res += empAdapter.Insert(emp.EmployeeName, emp.EmployeeDeptID);

        }
        txScope.Complete();

    }
    return res;

}

我相信,如果我不包含TransactionScope行,那么插入的数据将被回滚。 但不幸的是,我不明白这是怎么可能的...... RollbackTransaction(对象如何跟踪数据库中的TransactionScopeempAdapter对象及其事务。

我觉得我在这里错过了一些信息......我真的能够通过使用TransactionScope包围我的代码来替换我的TransactionScopeRollbackTransaction()吗?

如果没有,那么TransactionScope如何回滚交易呢?

trans by 2019-08-23T06:31:30Z

c# - 我应该避免'async void'事件处理程序吗?

我知道使用fire-and-forget async void方法来启动任务通常被认为是一个坏主意,因为没有跟踪任务的跟踪,处理可能在这种方法中抛出的异常很棘手。

我一般应该避免async void事件处理程序吗? 例如,

private async void Form_Load(object sender, System.EventArgs e)
{
        await Task.Delay(2000); // do async work
        // ...
} 

我可以像这样重写它:

Task onFormLoadTask = null; // track the task, can implement cancellation

private void Form_Load(object sender, System.EventArgs e)
{
        this.onFormLoadTask = OnFormLoadTaskAsync(sender, e);
} 

private async Task OnFormLoadTaskAsync(object sender, System.EventArgs e)
{
        await Task.Delay(2000); // do async work
        // ...
} 

除了可能的重入之外,异步事件处理程序的水下岩石是什么?

trans by 2019-08-22T23:29:10Z

.net - 如何在RestSharp中向请求正文添加文本

我尝试使用RestSharp来使用Web服务。 到目前为止,一切都进展顺利(为John Sheehan和所有贡献者欢呼!)但我遇到了障碍。 假设我想以已经序列化的形式(即,作为字符串)将XML插入到我的RestRequest的主体中。 是否有捷径可寻? 看来.AddBody()函数在幕后进行序列化,所以我的字符串变成了<String />

任何帮助是极大的赞赏!

编辑:请求我当前代码的示例。 见下文 -

private T ExecuteRequest<T>(string resource,
                            RestSharp.Method httpMethod,
                            IEnumerable<Parameter> parameters = null,
                            string body = null) where T : new()
{
    RestClient client = new RestClient(this.BaseURL);
    RestRequest req = new RestRequest(resource, httpMethod);

    // Add all parameters (and body, if applicable) to the request
    req.AddParameter("api_key", this.APIKey);
    if (parameters != null)
    {
        foreach (Parameter p in parameters) req.AddParameter(p);
    }

    if (!string.IsNullOrEmpty(body)) req.AddBody(body); // <-- ISSUE HERE

    RestResponse<T> resp = client.Execute<T>(req);
    return resp.Data;
}
trans by 2019-08-21T19:26:35Z

.net - 使用C#将SVG转换为PNG

我一直在尝试使用C#将SVG图像转换为PNG,而不必编写太多代码。 有人可以推荐一个库或示例代码来执行此操作吗?

trans by 2019-08-21T06:06:30Z

c# - 程序员应该使用SSIS,如果是,为什么?

作为.NET开发人员,出于什么原因,我应该优先考虑SSIS包而不是编写代码? 我目前在工作中生产了大量的包装,而且它们对于“#34;写&#34; (也许是画画?)并保持。 每个包看起来像一碗多彩的意大利面,C#和VB.NET脚本混合在抽象分解的点。 弄清楚每个&#34;执行SQL任务&#34; 或&#34; Foreach Loop&#34; 我必须双击该死的东西并浏览分散在多个标签中的文字值和表达式树。

我心胸开阔,所以我想知道是否有其他优秀的开发人员发现SSIS比编写代码更有效率。 如果您确实发现SSIS更高效,请告诉我原因。

trans by 2019-08-21T02:41:01Z

c# - 为什么我更喜欢单个'await Task.WhenAll'多次等待?

如果我不关心任务完成的顺序并且只需要它们全部完成,我是否还应该使用await Task.WhenAll而不是多个await? 例如,DoWork2低于DoWork1的首选方法(以及为什么?):

using System;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static async Task<string> DoTaskAsync(string name, int timeout)
        {
            var start = DateTime.Now;
            Console.WriteLine("Enter {0}, {1}", name, timeout);
            await Task.Delay(timeout);
            Console.WriteLine("Exit {0}, {1}", name, (DateTime.Now - start).TotalMilliseconds);
            return name;
        }

        static async Task DoWork1()
        {
            var t1 = DoTaskAsync("t1.1", 3000);
            var t2 = DoTaskAsync("t1.2", 2000);
            var t3 = DoTaskAsync("t1.3", 1000);

            await t1; await t2; await t3;

            Console.WriteLine("DoWork1 results: {0}", String.Join(", ", t1.Result, t2.Result, t3.Result));
        }

        static async Task DoWork2()
        {
            var t1 = DoTaskAsync("t2.1", 3000);
            var t2 = DoTaskAsync("t2.2", 2000);
            var t3 = DoTaskAsync("t2.3", 1000);

            await Task.WhenAll(t1, t2, t3);

            Console.WriteLine("DoWork2 results: {0}", String.Join(", ", t1.Result, t2.Result, t3.Result));
        }


        static void Main(string[] args)
        {
            Task.WhenAll(DoWork1(), DoWork2()).Wait();
        }
    }
}
trans by 2019-08-20T15:14:05Z

.net - VS2015 Project不再运行在debug mod中

即使我在Debug配置中运行,这也是我得到的。

我得到这个的方式是通过启用&#34; Just My Code&#34; 如果启动时没有用户代码,则发出警告 这是我们项目最近发生的事情,我不知道我们做了什么导致这一点。 但我一直无法修复它。 破发点不会火,快速观察会产生奇怪的结果。

我试过谷歌搜索这个问题,但没有一个标准的&#34;破发点不会被解雇#34; 解决方案有效。 我全力以赴。

更新:我已经检查了配置管理器,并且每个项目也都设置为Debug。enter image description here

更新2:我关闭了#34;启用Optimaizations&#34; 我不再得到#34;你正在调试一个发布版本&#34; 对话。 它再次在断点处运行和停止! 但是输出窗口在启动时显示:

模块的符号&#39; Navigo.exe&#39; 没装。

  1. 使用调试版本配置或禁用调试选项&#39;启用我的代码&#39;。
  2. 检查&#39;符号&#39; 调试选项下的设置。

所以这解决了我不能再使用断点和弹出窗口的主要问题。 这是奇怪的,因为我认为你需要加载符号才能使断点工作。 那么如果符号没有被加载,断点怎么能运作呢? 也许这只是一个坏消息?

trans by 2019-08-20T13:26:37Z

.net - System.BadImageFormatException:无法加载文件或程序集(来自installutil.exe)

我正在尝试使用InstallUtil.exe安装Windows服务,并收到错误消息

System.BadImageFormatException:无法加载文件或程序集&#39; {xxx.exe}&#39; 或其中一个依赖项。 尝试加载格式不正确的程序。

是什么赋予了?


编辑:(不是OP)从dup获取的完整消息获得更多点击[对于googleability]:

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319&gt; InstallUtil.exe C:\ xxx.exe       Microsoft(R).NET Framework安装实用程序版本4.0.30319.1       版权所有(c)Microsoft Corporation。 版权所有。

初始化安装时发生异常:       System.BadImageFormatException:无法加载文件或程序集&#39; [file:/// C:\ xxx.exe&#39;]或其依赖项之一。 尝试加载格式不正确的程序。

trans by 2019-08-20T13:10:06Z

.net - LINQ在哪里vs takewhile

我希望在takewhile和amp;之间有所区别。 LINQ方法。我从MSDN获得了以下数据。但它对我没有意义

Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 

根据谓词过滤一系列值。

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)

只要指定的条件为真,就返回序列中的元素。

欢迎所有意见。

trans by 2019-08-20T08:46:10Z

.net - C#将字符串从UTF-8转换为ISO-8859-1(Latin1)H

我已经搜索了这个主题,我已经看了每个答案,但我仍然没有得到它。

基本上我需要将UTF-8字符串转换为ISO-8859-1,我使用以下代码:

Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string msg = iso.GetString(utf8.GetBytes(Message));

我的源字符串是

Message = "ÄäÖöÕõÜü"

但不幸的是我的结果字符串变成了

msg = "�ä�ö�õ�ü

我在这里做错了什么?

trans by 2019-08-20T07:51:07Z

如何识别DLL是否是Debug或Release版本(在.NET中)

可能重复:
如何判断.NET应用程序是否在DEBUG或RELEASE模式下编译?

我确定以前曾经问过这个问题,但google和SO搜索失败了。

如何识别DLL是发布版本还是调试版本?

trans by 2019-08-20T07:47:19Z

.net - 为什么甚至可以更改私有成员,或者使用反射在C#中运行私有方法?

这个问题在这里已有答案:

  • 为什么反射可以在C#中访问类的受保护/私有成员?                                     3个答案

我最近遇到了一个问题,我使用的是C#,它是通过使用反射设置一个私有成员来解决的。

我惊呆了,发现设置私有成员/字段并运行私有方法是C#中允许和可能的事情。 这不是一个如何做这些事情的问题,他们有很好的记录,我的问题是:为什么?

如果将字段/成员/方法设置为私有/内部,为什么C#作为一种语言允许将这些字段设置在范围之外? 我认为这会抛出某种异常。 如果班级希望改变或设置它们,那么会不会有方法或构造函数?

trans by 2019-08-20T03:24:48Z

c# - 日期时间到javascript d

从Stackoverflow的另一个答案是从Javascript日期到.net DateTime的转换:

long msSinceEpoch = 1260402952906; // Value from Date.getTime() in JavaScript
return new DateTime(1970, 1, 1) + new TimeSpan(msSinceEpoch * 10000);

但是怎么做呢? DateTime到Javascript日期?

trans by 2019-08-19T15:24:07Z

c# - Task <int>如何成为一个int?

我们有这个方法:

async Task<int> AccessTheWebAsync()
{ 
    HttpClient client = new HttpClient();

   Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com");

   // You can do work here that doesn't rely on the string from GetStringAsync.
   DoIndependentWork();

   string urlContents = await getStringTask;
   //The thing is that this returns an int to a method that has a return type of Task<int>
   return urlContents.Length;
}

Task<int>int之间是否发生隐式转换? 如果没有,那么发生了什么? 它是如何实现的?

trans by 2019-08-19T15:03:18Z

.net - C#DateTime.Now精度

我在进行一些单元测试时遇到了DateTime.UtcNow的一些意外行为。 看起来当你快速连续调用DateTime.Now/UtcNow时,它似乎会给你一个长于预期的时间间隔的相同值,而不是捕获更精确的毫秒增量。

我知道有一个秒表类更适合做精确的时间测量,但我很好奇是否有人可以在DateTime中解释这种行为? 是否有针对DateTime.Now记录的官方精度(例如,精确到50毫秒内?)? 为什么DateTime.Now会不像大多数CPU时钟那样精确? 也许它只是为最低公分母CPU而设计的?

public static void Main(string[] args)
{
    var stopwatch = new Stopwatch();
    stopwatch.Start();
    for (int i=0; i<1000; i++)
    {
        var now = DateTime.Now;
        Console.WriteLine(string.Format(
            "Ticks: {0}\tMilliseconds: {1}", now.Ticks, now.Millisecond));
    }

    stopwatch.Stop();
    Console.WriteLine("Stopwatch.ElapsedMilliseconds: {0}",
        stopwatch.ElapsedMilliseconds);

    Console.ReadLine();
}
trans by 2019-08-19T14:22:39Z

c# - 测量代码执行时间

我想知道程序/功能/订单需要多长时间才能完成测试。

这就是我所做的,但我的方法是错误的,因为如果秒的差值为0,则无法返回经过的毫秒数:

请注意,睡眠值为500毫秒,因此经过的秒数为0,则无法返回毫秒数。

    Dim Execution_Start As System.DateTime = System.DateTime.Now
    Threading.Thread.Sleep(500)

    Dim Execution_End As System.DateTime = System.DateTime.Now
    MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
    DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))

有人能告诉我更好的方法吗? 也许用TimeSpan

解决方案:

Dim Execution_Start As New Stopwatch
Execution_Start.Start()

Threading.Thread.Sleep(500)

MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
       "M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
       "S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
       "MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
       "Code execution time", MessageBoxButtons.OK, MessageBoxIcon.Information)
trans by 2019-08-19T12:43:32Z

c# - 性能如何受未使用的using指令的影响?

每当您创建新页面或项目时,Visual Studio都会自动为您创建使用语句。 其中一些你永远不会使用。

Visual Studio具有以下功能:#34;删除未使用的使用&#34;。

我想知道如果从未访问过的using语句仍然在文件的顶部提到,是否对程序性能有任何负面影响。

trans by 2019-08-19T07:35:46Z

c# - 使用委托或lambda包装StopWatch计时?

我正在编写这样的代码,做一些快速而肮脏的时间:

var sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 1000; i++)
{
    b = DoStuff(s);
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);

当然,有一种方法可以将这些定时代码称为花式schmancy .NET 3.0 lambda而不是(God禁止)切割和粘贴它几次并用Delegate替换Delegate

我知道它可以作为Delegate完成,但我想知道lambda方式。

trans by 2019-08-19T05:12:49Z

.net - XML fi中日期/时间使用的正确格式是什么

使用.NET写入XML文件时,我使用什么格式的日期/时间? 我只是使用DateTime.ToString(),还是必须使用特定格式?

trans by 2019-08-19T03:53:51Z

.net - 如何在纯SQL中编写LINQ的.Skip(1000).Take(100)?

LINQ中.Skip()方法的SQL等价物是什么?

例如:我想从特定的数据库表中选择行1000-1100。

这只能用SQL吗? 或者我是否需要选择整个表,然后在内存中查找行? 如果可能的话,我理想地希望避免这种情况,因为桌子可能非常大。

trans by 2019-08-19T02:11:41Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共69页