小编Vev*_*rke的帖子

IsGenericType和IsGenericTypeDefinition之间的区别

Type.IsGenericType和之间有什么区别Type.IsGenericTypeDefinition?有趣的是,MSDN的IsGenericTypeDefinition链接已被破坏.

在尝试检索给定DbContext中定义的所有DbSets后,我发现了以下内容,我试图理解这种行为:通过IsGenericType过滤属性返回所需的结果,而不使用IsGenericTypeDefinition(不返回任何).

有趣的是,从这篇文章中我得到的印象是作者使用IsGenericTypeDefinition获得了他的DbSets,而我却没有.

按照说明讨论的示例:

private static void Main(string[] args)
{
    A a = new A();
    int propertyCount = a.GetType().GetProperties().Where(p => p.PropertyType.IsGenericType).Count();
    int propertyCount2 = a.GetType().GetProperties().Where(p => p.PropertyType.IsGenericTypeDefinition).Count();

    Console.WriteLine("count1: {0}  count2: {1}", propertyCount, propertyCount2);
}

// Output: count1: 1  count2: 0

public class A
{
    public string aaa { get; set; }
    public List<int> myList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# generics reflection system.type

14
推荐指数
1
解决办法
5273
查看次数

DbSet 没有用于删除范围的异步方法?

我找不到RemoveRange 的异步版本。例如,它存在于AddRange. 有人知道为什么吗?对我来说,没有一套同质的命令似乎很奇怪。

entity-framework-core

14
推荐指数
1
解决办法
6468
查看次数

jQuery Mobile Popups和Dialogs

jQuery mobile 1.2 alpha引入了Popups,虽然它已经有一个类似的小部件,称为Dialogs.它们在性质上看起来非常相似.

弹出窗口和对话框之间有哪些技术差异?

Popups可以做什么(任何实用的用例,例如首选),这是Dialogs无法做到的?

jquery-ui popup jquery-mobile

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

List <dynamic>元素有字段但我无法访问它们.为什么?

我需要循环一个List<dynamic>对象.

列表的对象都有值,但由于某种原因,我无法访问任何动态对象字段.下面是我的调试窗口的屏幕截图:

在此输入图像描述

在那里你可以看到对象包含字段(例如Alias,Id,Name等).

我试了两个强制转换为IDictionary<string, object>ExpandoObject,无济于事.我之前没有遇到过这样的事情:dynamic对象存在时无法访问对象中的现有字段.

这有什么不对?

代码抛出Microsoft.CSharp.RuntimeBinder.RuntimeBinderException一条消息说明{"'object' does not contain a definition for 'Name'"}.

创建列表添加了匿名类型的对象,如下所示:

return new List<dynamic>(fields.Select(field => new 
                        { 
                            Id = field.Id, 
                            Alias = field.Alias, 
                            Name = field.Name, 
                            Type = field.Type, 
                            Value = field.Value,
                            SortOrder = field.SortOrder
                        }));
Run Code Online (Sandbox Code Playgroud)

这里fields是一个ICollection<Field>,一个强类型集合.

c# expandoobject

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

零长度正则表达式和无限匹配?

在试图详细说明这个问题的答案时,我现在试图接受零长度正则表达式的行为/含义.

我经常使用www.regexr.com作为游乐场来测试/调试/理解正则表达式中发生的事情.

所以我们有这个最平庸的场景:

正则表达式是 a*

输入字符串是dgwawa (事实上​​,这里的字符串是无关紧要的)

为什么报告此正则表达式将无限匹配的行为,因为它匹配前一个字符的零次出现?

为什么结果不能是6个匹配,每个字符位置一个(因为在每个字符,无论是否是a,都有匹配,因为零匹配是匹配的)?

它是如何进入无限匹配的?所以它不会一次检查/进行一个角色?

我想知道它是如何/在何处进入无限循环.

在此输入图像描述

regex

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

过分区By和Group By的SQL Server性能比较

虽然一对夫妇的问题在已经发布的SO约之间的区别Over Partition ByGroup By,我没有找到一个明确的结论,关于执行更好.

在SqlFiddle上设置了一个简单的场景,其中Over (Partition By)似乎有一个更好的执行计划(但我并不熟悉它们).

表中的数据量是否应该改变这个?难道Over (Partition By)那么最终执行得更好?

在此输入图像描述

在此输入图像描述

sql-server group-by sql-server-performance window-functions

7
推荐指数
1
解决办法
5267
查看次数

DllImport 不适用于 Docker - DllNotFoundException

我有一个使用 .NET Core 和 C# 开发的项目,在 Docker 上运行,它必须调用使用 C++ 开发的 DLL 上的一些函数。问题是:当我在 Windows 上使用 Visual Code 运行没有 Docker 的项目时,代码运行顺利,但是当我在 Linux 容器上的 Docker 上运行时,代码在尝试执行 DLL 函数时会抛出错误。

我已经尝试将 .dll 文件复制到 /lib 文件夹,将其更改为项目的父文件夹,但这些都不起作用。我开始怀疑问题是没有找到该文件,通过进行一些研究,我发现这可能与文件权限有关,所以我对.dll文件运行了chmod a+wrx,也没有成功。

这是我的 Dockerfile 配置:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 80
RUN apt-get update \
    && apt-get install -y --allow-unauthenticated \
        libc6-dev \
        libgdiplus \
        libx11-dev \
     && rm -rf /var/lib/apt/lists/*
RUN apt-get update \
    && apt-get install -y poppler-utils

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app
COPY . . …
Run Code Online (Sandbox Code Playgroud)

c# dllimport docker .net-core

7
推荐指数
1
解决办法
8238
查看次数

FCOS中使用SELinux访问docker.socket

介绍

问候,

一周以来,我一直在尝试设置FCOS (Fedora CoreOS) 并运行Docker SwarmSELinux(这是我第一次使用 SELinux)

容器运行得很好,但是当我尝试使用时,/var/run/docker.socket我总是会遇到permission denied

portainer_agent.0.k9c6uqifwohk@localhost    | 2020/03/14 13:24:11 [ERROR] [main,docker] [message: Unable to retrieve information from Docker] [error: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: dial unix /var/run/docker.sock: connect: permission denied]
Run Code Online (Sandbox Code Playgroud)

我已经尝试禁用 SELinux ( setenforce 0) 以确保问题来自 SELinux,

信息

docker.socket

srw-rw----. 1 root docker system_u:object_r:container_var_run_t:s0 0 Mar 14 13:14 /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

这是我用于测试的 docker-compose.yaml

portainer_agent.0.k9c6uqifwohk@localhost    | 2020/03/14 13:24:11 …
Run Code Online (Sandbox Code Playgroud)

selinux docker coreos docker-compose

7
推荐指数
1
解决办法
3122
查看次数

是否可以使用nameof运算符暗示params数组的参数名称?

我以为我可以利用新的c#6运算符nameof从params数组隐式地构建键/值的字典.

例如,请考虑以下方法调用:

string myName = "John", myAge = "33", myAddress = "Melbourne";
Test(myName, myAge, myAddress);
Run Code Online (Sandbox Code Playgroud)

我不确定是否会有一个Test的实现,它将能够从params数组中暗示元素的名称.

有没有办法在nameof没有反射的情况下使用它?

private static void Test(params string[] values)
{
    List<string> keyValueList = new List<string>();

    //for(int i = 0; i < values.Length; i++)
    foreach(var p in values)
    {
        //"Key" is always "p", obviously
        Console.WriteLine($"Key: {nameof(p)}, Value: {p}");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# nameof

6
推荐指数
1
解决办法
598
查看次数

带有C#的Optimus无头浏览器

有人可以告诉我如何使用带有C#的Optimus(无头浏览器)nuget包来获取URL的响应.我也想让页面上的javascript像phantomjs一样自动执行.

c# optimus

6
推荐指数
1
解决办法
796
查看次数