小编sta*_*ica的帖子

将DataTable从一个DataSet复制到另一个DataSet

我正在尝试向一个新的DataSet X添加一个DataTable,它位于不同的DataSet Y中.如果我直接添加它,我会收到以下错误:

DataTable已经属于另一个DataSet.

我是否必须克隆DataTable并将所有行导入其中,然后将新的DataTable添加到新的DataSet中?有没有更好/更简单的方法呢?

c# datatable dataset

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

我需要一个永远不会返回null的`Assembly.GetEntryAssembly()`的替代品

我需要找到托管代码执行开始的程序集.

// using System.Reflection;
Assembly entryAssembly = Assembly.GetEntryAssembly();
Run Code Online (Sandbox Code Playgroud)

这似乎是要走的路,但MSDN参考页面Assembly.GetEntryAssembly说明这个方法"[c]从非托管代码调用时返回null."

在这种情况下,我想知道哪个程序集是由非托管代码调用的.

有没有可靠的方法来做到这一点,即总是返回非空Assembly引用?

.net c# system.reflection entry-point

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

面向面向方面的.NET编程(AOP)库仍在积极开发中?

我正在尝试找到一个相当成熟/稳定且可免费获得的(最好是开源的)库,用于在.NET中执行AOP.我一直在寻找,发现下面的产品; 然而,他们中的大多数似乎死了:

  • PostSharp - 这是通常推荐用于.NET的AOP解决方案,但它是商业产品,因此适用某些使用限制.(但是,它似乎可以免费用于个人或开源项目.)

  • Spring.NET - 不仅仅是关于AOP,所以如果只想做AOP,它可能太强大了.(?)

  • 策略注入应用程序块 - 来自Microsoft,我希望至少可以维护它.

  • Castle Windsor DynamicProxy一起- 主要不是AOP库,但显然它可以用于此目的.

  • 方面# - 这对我来说似乎已经死了.

  • Aspect.NET - 对我来说这似乎也很糟糕.

  • NAop - 显然不再支持.

  • AOP.NET - 这应该是NAop的继承者,而且看起来它不久前就已经死了.

可能还有更多.从上面的列表中我可以看出,在.NET上进行AOP的唯一真正选择是PostSharp(即使它是商业产品),Spring.NET,微软的Policy Injection Application Block,或者也许是Windsor.

我忘记了任何重大选择吗?


另请参阅StackOverflow上针对C#的开源面向方面库的建议.我发布了一个新问题,因为我对.NET的各种AOP解决方案的开发/维护状态特别感兴趣.

.net aop

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

为什么Haskell编译器不能促进确定性内存管理?

有了丰富的类型信息,为什么Haskell运行时不能避免运行GC来清理?应该可以找出所有用法并在编译的代码中插入适当的alloc/release调用,对吗?这样可以避免运行时GC的开销.

garbage-collection haskell memory-management

21
推荐指数
4
解决办法
2058
查看次数

从C#程序集中执行JavaScript

我想从C#程序集中执行JavaScript代码,并将JavaScript代码的结果返回给调用的C#代码.

定义我不想做的事情更容易:

  • 我不是试图从我的代码背后调用网页上的JavaScript函数.

  • 我不是要加载WebBrowser控件.

  • 我不想让JavaScript对服务器执行AJAX调用.

我想要做的是在JavaScript中编写单元测试,然后单元测试输出JSON,即使是纯文本也没问题.然后我想要一个通用的C#class/executible,可以加载包含JS的文件,运行JS单元测试,废弃/加载结果,并在后期构建任务中返回带有详细信息的通过/失败.

我认为使用旧的ActiveX ScriptControl是可能的,但似乎应该有一种.NET方法来实现这一点,而不使用SilverLight,DLR或其他尚未发布的东西.有人有主意吗?

更新:来自Brad Abrams博客

namespace Microsoft.JScript.Vsa
{
    [Obsolete("There is no replacement for this feature. " +
              "Please see the ICodeCompiler documentation for additional help. " +
              "http://go.microsoft.com/fwlink/?linkid=14202")]
Run Code Online (Sandbox Code Playgroud)

澄清:我们对使用JSUnit框架用JavaScript编写的JavaScript函数进行了单元测试.在我们的构建过程中,我们必须手动加载网页并单击按钮以确保所有JavaScript单元测试都通过.我希望能够在运行后自动C#单元测试的后期构建过程中执行测试,并报告C#单元测试的成功/失败,并将它们用作指示是否构建被打破.

.net javascript c# unit-testing codedom

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

如何在函数式编程中实现对内存有效的非破坏性集合操作?

我试图弄清楚如何在函数式编程中实现对大型集合的非破坏性操作,即.如何在不必创建全新集合的情况下更改或删除单个元素,其中所有元素(即使未修改的元素)将在内存中重复.(即使原始集合是垃圾收集的,我也希望这样的集合的内存占用和一般性能很糟糕.)

这是我到目前为止所取得的成就:

使用F#,我想出了一个函数insert,它将列表分成两部分,并在中间引入一个新元素,似乎没有克隆所有未更改的元素:

// return a list without its first n elements:
// (helper function)
let rec skip list n =
    if n = 0 then
        list
    else
        match list with
        | []    -> []
        | x::xs -> skip xs (n-1)

// return only the first n elements of a list:
// (helper function)
let rec take list n =
    if n = 0 then
        []
    else
        match list with
        | []    -> []
        | x::xs -> x::(take …
Run Code Online (Sandbox Code Playgroud)

performance f# functional-programming memory-footprint data-structures

20
推荐指数
3
解决办法
945
查看次数

可以在Winforms TextBox上设置背景图像吗?

是否可以TextBox在C#中更改Windows窗体的背景图像?没有BackgroundImage财产.我应该Paint以某种方式覆盖该方法吗?

c# textbox background-image winforms

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

JavaScript数组实际上是链接列表吗?

我是Javascript的新手,并注意到你不需要指定一个数组的大小,并经常看到人们一次动态创建数组元素.这在其他语言中将是一个巨大的性能问题,因为随着它的大小增加,您将不断需要为该阵列重新分配内存.

这不是JavaScript中的问题吗?如果是这样,那么是否有可用的列表结构?

javascript arrays linked-list

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

我如何使`await ...`使用`yield return`(即在迭代器方法中)?

我有现有的代码,看起来类似于:

IEnumerable<SomeClass> GetStuff()
{
    using (SqlConnection conn = new SqlConnection(connectionString))
    using (SqlCommand cmd = new SqlCommand(sql, conn)
    {
        conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            SomeClass someClass = f(reader); // create instance based on returned row
            yield return someClass;
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

看来我可以通过使用获益reader.ReadAsync().但是,如果我只修改一行:

        while (await reader.ReadAsync())
Run Code Online (Sandbox Code Playgroud)

编译器通知我await只能在标async有的方法中使用,并建议我修改方法签名为:

async Task<IEnumerable<SomeClass>> GetStuff()
Run Code Online (Sandbox Code Playgroud)

但是,这样做会导致GetStuff()无法使用,因为:

body GetStuff()不能是迭代器块,因为Task<IEnumerable<SomeClass>>它不是迭代器接口类型.

我确信我错过了异步编程模型的关键概念.

问题:

  • 我可以ReadAsync()在我的迭代器中使用吗?怎么样?
  • 我怎样才能以不同的方式思考异步范式,以便了解它在这种情况下的工作原理?

c# ado.net generator yield-return async-await

19
推荐指数
3
解决办法
9254
查看次数

在SSMS中,如何更改SQL查询窗口的选项卡名称?

我想知道如何更改SQL查询窗口的选项卡名称:

在此输入图像描述

而不是SQLQuery8.sql…Registry(sa(51)),我想有一个自定义标题.

如果查询窗口有一个很标题,我一次只能打开3个窗口.我想打开10个以上的窗户.所以,我需要查询窗口的名称更改为很短,像Q1,Q2等等.

我怎么能改变这个?

sql-server ssms

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