小编Gam*_*ing的帖子

为什么在添加Microsoft.Bcl.Async包后将"bindingRedirect"添加到app.config文件中?

我想知道为什么nuget app.config在安装以下代码后将以下代码添加到我的应用程序文件中Microsoft.Bcl.Async:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

如果我从配置中删除此XML元素,该应用程序将无法正常工作.

据我所知,我们可以使用它bindingRedirect来加载一个新版本或旧版本的程序集,以防我们在编译EXE时使用的版本消失.
但是我正在使用的版本2.5.19.0,为什么我需要重定向呢?

我的DLL的版本

我为什么需要这个bindingRedirect

.net c# app-config base-class-library

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

Kotlin序列"跳过"前N个条目

如何"跳过"kotlin序列/列表的前N个条目?

我正在寻找相当于C#LINQ"跳过"的kotlin .

sequences kotlin

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

捕获OutOfMemoryException如何工作?

我对OutOfMemoryException使用try/catch块捕获一个事实感到有些困惑.

给出以下代码:

Console.WriteLine("Starting");

for (int i = 0; i < 10; i++)
{
    try
    {
        OutOfMemory();
    }
    catch (Exception exception)
    {
        Console.WriteLine(exception.ToString());
    } 
}

try
{
    StackOverflow();
}
catch (Exception exception)
{
    Console.WriteLine(exception.ToString());
}

Console.WriteLine("Done");
Run Code Online (Sandbox Code Playgroud)

我用来创建OutOfMemory + StackOverflowException的方法:

public static void OutOfMemory()
{
    List<byte[]> data = new List<byte[]>(1500);

    while (true)
    {
        byte[] buffer = new byte[int.MaxValue / 2];

        for (int i = 0; i < buffer.Length; i++)
        {
            buffer[i] = 255;
        }

        data.Add(buffer);
    }
}

static void StackOverflow() …
Run Code Online (Sandbox Code Playgroud)

.net c# clr out-of-memory

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

通过等待每个任务异步转换IEnumerable <Task <T >>

今天我想知道如何通过等待每个任务来转换任务列表.请考虑以下示例:

private static void Main(string[] args)
{
    try
    {
        Run(args);                
        Console.ReadLine();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
        Console.ReadLine();
    }
}

static async Task Run(string[] args)
{
    //Version 1: does compile, but ugly and List<T> overhead
    var tasks1 = GetTasks();                       

    List<string> gainStrings1 = new List<string>();
    foreach (Task<string> task in tasks1)
    {
        gainStrings1.Add(await task);
    }
    Console.WriteLine(string.Join("", gainStrings1));

    //Version 2: does not compile
    var tasks2 = GetTasks();
    IEnumerable<string> gainStrings2 = tasks2.Select(async t => await t);
    Console.WriteLine(string.Join("", gainStrings2));
}

static IEnumerable<Task<string>> GetTasks()
{
    string[] …
Run Code Online (Sandbox Code Playgroud)

c# linq task-parallel-library async-await

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

在Windows 8中注册协议处理程序

我正在尝试注册我的应用程序,它将处理链接的打开,例如,http://stackoverflow.com.我需要为Windows 8明确地执行此操作,我在早期版本的Windows中使用它.根据MSDN,这在Win8中已经发生了变化.

我已经浏览了MSDN上的MSDN(msdn.microsoft.com/en-us/library/cc144154.aspx)页面上的默认程序页面.它为处理文件类型提供了很好的演练,但是对协议的细节很有帮助. 将应用程序注册到URL协议只涉及设置新协议所涉及的步骤,而不是如何正确地将新处理程序添加到现有协议.

我也尝试过其他SO帖子中列出的注册表设置.

还有一件事,应用程序不是Metro/Windows Store应用程序,因此在清单中添加条目对我来说不起作用.

windows windows-8

13
推荐指数
3
解决办法
9375
查看次数

证书存储区中证书的私钥不可读

我想我和这个人有同样的问题,但我没有他/她那么幸运,因为提供的解决方案对我不起作用.

提供的解决方案在C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys(不在C:\Users\[Username]\AppData\Roaming\Microsoft\Crypto\RSA子目录中)和(和子目录)中查找文件但是由于我希望安装程序将应用程序安装到所有用户,因此自定义操作在SYSTEM-User 下运行,这导致实际创建的文件在C:\ProgramData\Application Data\Microsoft\Crypto\RSA\S-1-5-18.

当以管理员(右键单击 - >运行为管理员)运行"普通"应用程序执行完全相同的代码时,将创建一个文件C:\Users\[Username]\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-1154405193-2177794320-4133247715-1000.

使用WIX自定义操作生成的证书似乎没有私钥(" 密钥集不存在 "),而"正常"应用程序生成的证书具有.

当在文件的权限来看,他们似乎是好的,即使它们不同(工作一个不包括SYSTEM用户),即使添加了后SYSTEM一个的("非工作")的文件,我无法阅读私钥,这里也是一样的错误.

然后我用了FindPrivateKey UTIL中找到相应的文件,但我得到的是"Unable to obtain private key file name".

好的,这里有什么?Windows在哪里存储SYSTEM用户存储的证书的私钥?也许没有创建任何私钥文件?为什么?

c# uac custom-action certificate private-key

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

ToggleButton不显示任何状态

我有最简单的应用程序:带单个切换按钮的单个窗口:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ToggleButton Content="This is my ToggleButton" />
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

当我现在点击切换按钮时,实际上没有任何反应.当我为event CheckedUncheckedevent 设置事件处理程序,然后单击按钮时,首先Checked然后Unchecked被触发.所以按钮似乎正常工作......

我正在编译.NET 4.5,我正在使用Windows 8 RTM.

此行为是否与Windows 8样式的显示按钮(没有"3D"边框)有关?谁能确认一下?

更新1 我制作了一张图片来展示我的意思:

Windows 8与Windows 7切换按钮

如您所见,在Windows 8中,"没有任何反应",当单击切换按钮时,它根本不会"切换".这似乎是一个bug,与Windows 8风格的按钮有关......

更新:2013年5月30日: 一个修补程序是可用的:http://support.microsoft.com/kb/2805222
请参阅WPF下的问题#5
不幸的是它不能解决我的问题:(

wpf togglebutton windows-8

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

WinRT中的HttpUtility.ParseQueryString方法在哪里?

由于HttpUtility在WinRT中不可用,我想知道是否有一种直接解析HTTP查询字符串的方法?

在WinRT中实际上有一些等同于HttpUtility.ParseQueryString吗?

parsing http query-string windows-8 windows-runtime

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

IntelliJ 终端 CTRL+C 不起作用

当使用 IntelliJs 集成终端时 - 例如使用 git - 有时我的 CTRL + C 按键不会进入终端。例如,当前行不会中止。

我该怎么办,因为这种行为很烦人。

windows git terminal intellij-idea

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

什么开源C#库可以读/写微QR码?

我正在寻找一个C#库来生成和读取微QR码(例如下面的例子).如果图书馆能够识别图像中包含其他内容的微型QR码(即隔离并读取QR码),那就太棒了.

微QR码的例子

.net c# qr-code libraries

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