小编Gig*_*igi的帖子

渐变不适用于位置:绝对

我正在尝试使用线性渐变作为页面的背景.渐变没有显示,背景保持白色.这是重现问题的最小代码:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta charset="utf-8">
    <style type="text/css">
    body
    {
        width:100%;
        margin-left:-50%;
        position:absolute;
        left:50%;
        background: rgb(0, 0, 0);
        background: -moz-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
        background: -webkit-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
        background: -o-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
        background: -ms-linear-gradient(270deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);
        background: linear-gradient(0deg, rgb(0, 0, 0) 1%, rgb(21, 126, 250) 99%);

    }
    </style>
</head>
<body>

    This is a test and a …
Run Code Online (Sandbox Code Playgroud)

css linear-gradients css3

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

捕获 WPF Threestate 复选框中的不确定状态

因此,我在 WPF 应用程序中有一个简单的三态复选框:

<CheckBox Checked="CheckBox_Checked"
          Unchecked="CheckBox_Checked"
          IsThreeState="True" />
Run Code Online (Sandbox Code Playgroud)

现在,我希望此复选框在其状态更改时执行某些操作,这就是为什么我将 和Checked事件设置Unchecked为视图中的相同方法。由于这只是一个非常简单的示例,因此这就是我在该方法中所做的全部操作:

    private void CheckBox_Checked(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Test");
    }
Run Code Online (Sandbox Code Playgroud)

现在的问题是,虽然在选中或取消选中复选框时这有效,但当其值更改为不确定状态时什么也没有发生。很明显,我正在为不确定状态设置事件,但缺少一些事件CheckedUnchecked

当设置不确定状态时,我需要使用什么事件才能采取行动?

c# wpf checkbox events

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

将密码存储在内存中有多大的风险?

我最近问了一个问题" 绑定PasswordBox密码是不是一个坏主意? "的要点是,虽然现在的WPF应用程序倾向于遵循MVVM设计模式,但WPF PasswordBox似乎是故意设计的,以防止密码被绑定.然而,人们已经找到了绑定它们的方法,这意味着它们作为视图模型的一部分保存在内存中(更糟糕的是,如果密码只是从PasswordBox中检索并在现场检查,我猜).

这种情况导致了一个更基本的问题.将密码存储在内存中的真正风险是什么?可能发生什么以及发生的可能性有多大?(当我说存储时,它意味着作为登录过程的一部分;之后它们永远不会被保存在内存中......除非它们在垃圾收集器启动之前始终驻留在内存中.)

有些人认为" 如果攻击者可以读取你的记忆,那么你就会100%丢失. "(对这个问题的评论),这表明你是否将密码存储在内存中可能是多余的,因为如果他们有你的话你就会被搞砸访问你的记忆(参见Troy Hunt关于Heartbleed的文章,该文章展示了如何在一个无法访问的环境中访问内存可能是非常灾难性的一个例子).

另一方面,可以将密码保存在托管内存之外 - 这篇博文显示了一个非常详细的示例,这篇MSDN文章展示了与SecureStrings进行转换的方法.但是,我并不完全相信这是多么必要.首先,要做到这一点需要相当多的工作,并且遵循"如果他们能够读到你的记忆,你还是被搞砸了"的论点,它甚至可能都没用.其次,仅仅因为密码在非托管内存中,并不意味着它是安全的(参见上面的Heartbleed示例); 优点实际上是限制密码在内存中的时间量,以及之后将内存归零.

所以...总之,是否值得将这些密码从托管内存中删除?

c# security passwords wpf

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

Web API IIS要求

ASP.NET Web API是否需要运行任何特定版本的IIS?我有兴趣知道每个版本的Web API,例如,如果Web API 2.0需要IIS7.5,Web API 2.1需要IIS8.我似乎无法在任何地方找到这些信息.

.net asp.net iis asp.net-web-api

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

序列化有优雅的模式吗?

我经常发现自己在实现此类:

public class Something
{
    public string Serialize()
    {
        // serialization code goes here
    }

    public static Something Deserialize(string str)
    {
        // deserialization code goes here
    }
}
Run Code Online (Sandbox Code Playgroud)

我想通过使上面的类实现一个如下所示的接口来在该类型的所有类中强制执行此操作:

public interface ISerializationItem<T>
{
    string Serialize();
    T Deserialize(string str);
}
Run Code Online (Sandbox Code Playgroud)

唉,这是不可能的,因为接口无法覆盖静态方法,并且该方法需要是静态的,这样它才不依赖于类的任何实例。

更新:通常,我会反序列化,如下所示;静态方法有效地用于构造类的实例,因此我不希望手头已经有一个实例来执行此操作:

var str = "Whatever";
var something = Something.Deserialize(str);
Run Code Online (Sandbox Code Playgroud)

是否有适当的方法来强制执行此约束?

c# serialization interface

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

具有相同名称的泛型和非泛型类型的约定

Task是一个以泛型和非泛型形式存在的类的例子。泛型形式扩展了非泛型形式。

public class Task
{

}

public class Task<T> : Task
{

}
Run Code Online (Sandbox Code Playgroud)

假设我自己正在实施类似的东西。通常,约定是将不同的类放在不同的文件中。由于它们具有相同的名称,因此在这里是不可能的。

这种场景的约定是什么?将两个类放在同一个文件中,还是将通用类放在不同的文件中,但名称不同?

c# convention generics

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

使用状态构造函数参数在Akka .NET中的依赖注入

在构造函数中使用类似字符串参数的东西会使依赖注入变得非常混乱.认为:

public class CurrencyActor
{
    public CurrencyActor(string currency, IRepository repository)
    {
...
Run Code Online (Sandbox Code Playgroud)

还有其他问题(例如这个)用依赖注入来解决这个特殊问题.通常,这可以通过重新思考设计和重构来解决.

但是,如果对象的多个版本分别负责不同的数据(例如每种货币的CurrencyActor)实际上有意义呢?这在使用像Akka .NET这样的actor模型时非常正常,但即使在该域之外也是有意义的.

在传递他们需要的初始状态时,使用依赖注入创建这些多个实例的最佳方法是什么?

c# dependency-injection akka.net

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

Entity Framework Core是否支持MariaDB?

Entity Framework Core是否支持MariaDB?

我发现它不在支持的提供商列表中,但MySQL是.也许MySQL提供商会对MariaDB起作用?

mariadb entity-framework-core

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

为什么这个十进制在ToString()上显示8位小数?

我有一个类型decimal的变量,其值为1.0.我将它保存到SQL Server 2012表的列中,其类型为decimal(10, 8).

检索该值后,我看到它是1,但是当我调用时ToString(),返回的值是"1.00000000"(见下文).

我意识到8位小数对应于数据库中的数据类型.但是,Entity Framework生成的属性中没有任何属性或任何内容可以为其提供此类行为,因此我不知道这是如何发生的.

以下是我在立即窗口中执行的一些测试:

myDecimal
1
myDecimal.ToString()
"1.00000000"
myDecimal == 1
true
myDecimal == 1.0m
true
Run Code Online (Sandbox Code Playgroud)

正如你在前两次测试中看到的那样,它也不是浮点错误的情况(不是因为十进制是定点而我没想到它,但我不得不尝试它,因为我用完了想法).

知道小数ToString()是如何产生一个8位小数的字符串?

编辑:为了比较,请查看下面的测试.

1m.ToString()
"1"
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework decimal

4
推荐指数
2
解决办法
865
查看次数

SignalR无法调用非委托类型

我正在尝试通过编写一个非常简单的应用程序来学习SignalR ...它基本上定期发送"Hello"(比如股票代码,但更简单).

这是我的中心:

public class StockTickerHub : Hub
{
    public void Hello()
    {
        var s = StockTicker.stockTicker;

        Clients.All.hello();
    }
}
Run Code Online (Sandbox Code Playgroud)

...这里是应该定期发送消息的代码:

public class StockTicker
{
    public static StockTicker stockTicker = new StockTicker();
    private Thread thread;

    public StockTicker()
    {
        var stockTickerHub = GlobalHost.ConnectionManager.GetHubContext<StockTickerHub>();

        this.thread = new Thread(() =>
            {
                while (true)
                {
                    stockTickerHub.Clients.All().hello();
                    Thread.Sleep(1000);
                }
            }
        );

        this.thread.Start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到一个RuntimeBinderExceptionstockTickerHub.Clients.All().hello();.它说:

System.Core.dll中发生未处理的"Microsoft.CSharp.RuntimeBinder.RuntimeBinderException"类型异常

附加信息:无法调用非委托类型

我究竟做错了什么?

客户端JavaScript如下所示,以防您需要复制它.

<script type="text/javascript">
    $(function () {

        var chat = $.connection.stockTickerHub;

        chat.client.hello …
Run Code Online (Sandbox Code Playgroud)

signalr

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