小编Gus*_*man的帖子

.net Core amd Roslyn CSharpCompilation,类型'Object'在未引用的程序集中定义

我正在尝试将一些.net代码移植到新的Core运行时,并且我在移植一些动态编译时遇到了不好的时间.

要恢复,它总是要求我引用System.Runtime和mscorlib,但不知道如何引用它们.

作为旁注,我不能引用Framework 4.6,因为项目必须发布到带有.net Core的Linux机器上.

这是最小代码:

        string testClass = @"using System; 
        namespace test{

         public class tes
         {

           public string unescape(string Text)
          { 
            return Uri.UnescapeDataString(Text);
          } 

         }

        }";

        var compilation = CSharpCompilation.Create(Guid.NewGuid().ToString() + ".dll")
            .WithOptions(new CSharpCompilationOptions(Microsoft.CodeAnalysis.OutputKind.DynamicallyLinkedLibrary))
            .AddReferences(
            MetadataReference.CreateFromFile(typeof(Object).GetTypeInfo().Assembly.Location),
            MetadataReference.CreateFromFile(typeof(Uri).GetTypeInfo().Assembly.Location)
            )
            .AddSyntaxTrees(CSharpSyntaxTree.ParseText(testClass));

        var eResult = compilation.Emit("test.dll");
Run Code Online (Sandbox Code Playgroud)

它总是抱怨mscorlib(在这个例子中)和System.Runtime(在我的真实项目中)的需要.

我正在使用Microsoft.CodeAnalysis.CSharp软件包版本2.0.0-beta3

关于如何使用Roslyn和.net Core动态编译的任何想法?

.net c# roslyn .net-core

13
推荐指数
1
解决办法
1653
查看次数

Mono HttpListener客户端证书

我使用HttpListener创建了一个服务器.它在没有SSL的情况下工作得很好,但是使用SSL时会出现奇怪

我已经使用httpcfg安装了证书,甚至使用我自己的程序,它安装正确,监听器启动并提供HTTPS请求,但始终要求提供客户端证书.

它不会发生在Windows/.net上,只有Linux/mono(我使用的是ver 3.4.0)并且非常烦人,我不希望每次尝试登录客户端时都会询问用户证书.

这是单声道错误还是有任何方法可以禁用客户端证书协商?

谢谢.

c# mono ssl httplistener

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

是否可以为 Dapper 创建一个通用的 SqlMapper.ITypeHandler?

我有一个非常类似于 Nullable 的泛型类,名为 Optional,它是一个具有一些属性和值 (T) 属性的泛型结构。

我创建了一个可以处理所有这些类型的 SqlMapper.ITypeHandler,但是我无法使用 Dapper 注册它,SqlMapper.AddTypeHandler(Typeof(Optional<>), new OptionalHandler());因为它会引发异常,更糟糕的是,我看到 Dapper 使用字典来存储类型转换器,使用注册类型作为键,所以它必须是具体类型才能使其工作。

我试图创建一个自定义 Type 实现并覆盖==运算符和 Equals 函数,但是当我尝试像这里SqlMapper.AddTypeHandler(new OpType(), new OptionalHandler());这样使用这种新类型时,它会抛出一个System.NotSupportedException, the specified method is not compatible.

所以问题是,是否有可能为 Dapper 分配一个 ITypeHandler 来处理从通用类型派生的所有类型?

这是我创建的 Type 类,如果有人知道如何修复它才能工作,它可能是一个很好的答案。

public class OpType : Type
{
    public static Type baseType = typeof(Optional<>);
    public override Assembly Assembly
    {
        get
        {
            return baseType.Assembly;
        }
    }

    public override string AssemblyQualifiedName
    {
        get
        {
            return baseType.AssemblyQualifiedName;
        }
    }

    public override …
Run Code Online (Sandbox Code Playgroud)

c# generics dapper

6
推荐指数
0
解决办法
640
查看次数

发布 .net 标准库及其所有依赖项?

我创建了一个动态加载库并执行它的主类的系统。一切都很完美,我遇到的问题是如何发布这个 DLL 及其所有依赖项。由于没有可执行项目引用它,我必须手动检索依赖项:尝试加载库,检查所需的 DLL,转到 NuGet 缓存文件夹,复制库,​​再试一次,检查它是否抱怨更多依赖项等等直到拥有所有必需的库。

这是一个真正的痛苦,我还没有找到任何关于如何做到这一点的信息,是否可能,或者我是否坚持这个?

该库是一个 .net 标准 2.0 库,我之前使用 .net classic 执行过此操作,输出文件夹始终包含所有必需的库,甚至是来自 NuGet 包的库,但使用 .net 标准时,某些内容发生了变化,现在只有来自正在复制引用的项目,但没有将引用的 NuGet 包复制到输出文件夹。

干杯。

c# dll publish nuget .net-standard-2.0

6
推荐指数
2
解决办法
4857
查看次数

JSignature 从数据库重新创建签名

我已成功将 JSignature 数据保存到数据库中。字符串看起来像这样。

image/jsignature;base30,4P2cl1H1J1T1U1P1K1yiZ2X54000000337ehq1v1u1z1Atke8200Y47dkqsmda76422232368dj1C1z1D1D1xrea310Z79caa763000Y32568adgol_4DZ335dcfifega3Y79bbcdecab864320Z4caec866767753200Y34667776766472200Z89f975551Y1668aba885330000Z3576
Run Code Online (Sandbox Code Playgroud)

现在我需要在下一页中再次显示签名。

我尝试做

$("#getSignatureBack").jSignature("importData", data );

其中data是上面的字符串,是我想要显示签名getSignatureBack的 ID 。div我该怎么做?

谢谢

javascript jquery jsignature

5
推荐指数
1
解决办法
8494
查看次数

Task.WaitAny的最大任务数?

我正在创建一个将产生大量工作任务的系统,在我的应用程序中,我正在执行Task.WaitAny以检索第一个完成的任务。

我担心的是我可以发送多少个任务给WaitAny,我知道WaitHandle的WaitAny / All最多只能支持64个等待句柄,而且我不确定Task.WaitAny的基础机制是否在内部使用等待句柄来等待完成。任务,因此这些限制适用于他们。

可以将多少个任务传递给Task.WaitAny(与WaitHandles一样)有没有限制?

干杯。

c# multithreading asynchronous task

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

没有授权头

我正在创建一个 ASP.NET Core 2.0 Web API,一切都运行得很好,但我在使用 Swashbuckle 时遇到了问题。我已经为我的 API 添加了一个基本的身份验证,并为 Swasbuckle 启用了基本方案:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
        c.AddSecurityDefinition("Basic", new BasicAuthScheme { Description = "Basic authentication" });
    });

    services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)

当我访问 SwaggerUI 时一切正常,我看到授权方案,我可以添加用户名和密码。调用任何 api 时都会出现问题,授权标头永远不会发送到 API 控制器。

我是否需要做任何其他事情才能告诉 Swasbuckle 它必须发送授权标头?

.net c# swashbuckle asp.net-core

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

GLSL IF速度与乘法因子

我知道这个问题已被普遍提出,但回答是"依赖",所以我正在创建一个具体的问题,希望得到一个具体的答案.

我知道IF在GLSL上的邪恶,它们可能非常昂贵,甚至在某些硬件中执行所有代码.

所以,我有一个示例的片段着色器(双抛物面阴影贴图),它使用if来确定使用哪个贴图并计算深度,但我知道用乘数替换那些是非常容易的,问题是有片段着色器内部的纹理采样,使用if或使用乘数来过滤未使用的数据会更快吗?

这些是建议的代码:

IF版本:

//Alpha is a variable computed on the fly, cannot be replaced

float depth = 0;
float mydepth = 0;

if(alpha >= 0.5f)
{
    depth = texture2D(ShadowFrontS, P0.xy).x;
    mydepth = P0.z;
}
else
{
    depth = texture2D(ShadowBackS, P1.xy).x;
    mydepth = P1.z;
}
Run Code Online (Sandbox Code Playgroud)

过滤版本:

float mlt = ceiling(alpha - 0.5f);

float depth = 0;
float mydepth = 0;

depth = texture2D(ShadowFrontS, P0.xy).x * mlt;
mydepth = P0.z * mlt;
mlt = 1.0f - mlt;
depth = depth …
Run Code Online (Sandbox Code Playgroud)

windows opengl android glsl ios

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

什么是更快,次选择或不同(MySQL)?

让我描述一下我的怀疑.我有一个系统,我有三个实体,医生,病人和预约.预约有医生的身份和患者身份证.

我现在需要检索所有与具体医生预约的患者,而且我不确定什么会更快,一个独特的或者是id的subselect,这些是查询:

使用distinct->

SELECT DISTINCT patient.id, patient.name, patient.surname FROM
appointment INNER JOIN patient ON patient.id = appointment.patientid WHERE
appointment.doctorid = @id;
Run Code Online (Sandbox Code Playgroud)

使用subselect->

SELECT patient.id, patient.name, patient.surname FROM patient
WHERE patient.id IN (select appointment.patientid FROM appointment 
WHERE appointment.doctorid = @id);
Run Code Online (Sandbox Code Playgroud)

不确定这会影响,系统将在MariaDB集群上运行.

mysql sql mariadb

0
推荐指数
1
解决办法
67
查看次数