小编Ori*_*rds的帖子

HTML选择标记为黑色背景 - 下拉三角形在Firefox 3中不可见

我有以下HTML(注意CSS使背景变黑并且文本变白)

<html>
  <select id="opts" style="background-color: black; color: white;">
    <option>first</option>
    <option>second</option>
  </select> 
</html>
Run Code Online (Sandbox Code Playgroud)

Safari非常智能,可以使文本右侧显示的小三角形与前景文本的颜色相同.

其他浏览器基本上忽略了CSS,所以它们也很好.

但Firefox 3会应用背景颜色,但会将三角形留下黑色,因此您无法看到它,就像这样

例

我无法找到解决这个问题的方法 - 任何人都可以帮忙吗?有没有-moz-select-triangle-color像这样模糊不清的东西?

html css firefox html-select drop-down-menu

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

Qt应用程序失败了

我正在尝试将Qt应用程序与其库链接,并且链接器(MinGW)会喷出数百行,如下所示,我不确定如何继续.

 cpp: undefined reference to `_Unwind_SjLj_Register'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Unregister'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Resume'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Register'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Unregister'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Resume'

qt mingw g++ reference undefined

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

同步2个WPF DataGrids的滚动位置

我试图同步 2 WPF DataGrid控件的水平滚动位置.

我正在订阅第一个DataGrid 的ScrollChanged事件:

<toolkit:DataGrid x:Name="SourceGrid" ScrollViewer.ScrollChanged="SourceGrid_ScrollChanged">
Run Code Online (Sandbox Code Playgroud)

我有第二个DataGrid:

<toolkit:DataGrid x:Name="TargetGrid">
Run Code Online (Sandbox Code Playgroud)

在我尝试使用的事件处理程序中IScrollInfo.SetHorizontalOffset,但是唉,DataGrid没有公开IScrollInfo:

private void SourceGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    ((IScrollInfo)TargetGrid).SetHorizontalOffset(e.HorizontalOffset);
    // cast to IScrollInfo fails
}
Run Code Online (Sandbox Code Playgroud)

还有另一种方法来实现这一目标吗?或者TargetGrid上是否有另一个元素暴露了IScrollInfo实现滚动位置同步所必需的元素?

顺便说一下,我使用的是冻结列,所以我不能用ScrollViewers包装两个DataGrid控件.

wpf datagrid scroll

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

我可以更改免费版CodeRush Express for Visual Studio的键绑定吗?

注意:我已经尝试在coderush/devexpress论坛上发帖,并且像往常一样,没有收到任何回复.希望有些SO用户使用coderush express并且可以提供帮助吗?

你好.我刚刚安装了免费的CodeRush XPress插件,它看起来不错,但我无法弄清楚如何更改键绑定!我发现Ctrl + Alt + F难以点击,而Shift + Enter与我在过去3年中设置的现有键绑定冲突,所以我真的抵制CodeRush覆盖它.

我只是愚蠢而且缺少一些非常明显的东西,或者是"更改键绑定"而不是免费版本的功能?

devexpress coderush

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

WCF和接口继承 - 这是一件可怕的事吗?

我的应用程序有2个"服务",假设一个是基本(整数)计算器,一个是浮点计算器.我将这些表达为接口,如下所示:

public interface IBasicCalculator
{
    int Add( int a, int b );
}

public interface IFloatingPointCalculator
{
    double Add( double a, double b );
}
Run Code Online (Sandbox Code Playgroud)

我想通过WCF公开这些.不幸的是,WCF似乎与以下概念密切相关:您希望公开的每个可能的操作必须通过一个服务接口 - 您不能在服务之间共享会话,从客户端开始,因为您需要创建一个很麻烦每个单独的代理,似乎没有任何"子服务"等...

所以,我已经收集到了我需要提供一个"组合"界面(一个也可能称之为外观),如下所示:

[ServiceContract]
public interface ICalculatorService : IBasicCalculator, IFloatingPointCalculator
{
    [OperationContract(Name = "AddInt")]
    new int Add( int a, int b );

    [OperationContract(Name = "AddDouble")]
    new double Add( double a, double b );
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,那么WCF会向客户端公开这两种方法,这些方法可以调用它们,而且它实际上都可以工作.

然而,像这样的"继承接口"似乎是笨拙的.特别是和.严格来说,一个方法表明隐藏了一个基本方法,我实际上并没有这样做.我可以省略,但后来我得到编译器警告,相当于"我想我隐藏了这个方法,你需要重命名它的方法或者把'新'放在它上面".new int Addnew double Addnewnew

所以,这是一个由两部分组成的问题:

  1. 我是否正在将"将所有内容组合到一个界面"逻辑中,或者实际上是否有办法使用WCF公开"子服务"或"多个链接服务"?

  2. 如果这是需要做的,有更好的方法吗?

谢谢!

.net wcf inheritance interface

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

是否有与旧 WebApi IHttpControllerTypeResolver 等效的 AspNetCore?

在 WebApi 中,您可以替换内置的IHttpControllerTypeResolver,其中您可以以任何您喜欢的方式找到您想要的 Api 控制器。

在使用 MVC 的 AspNetCore 中,PartsManager 和 FeatureManager 存在令人困惑的混乱,其中某些地方与控制器有关。我能找到的所有文档和讨论似乎都假设您是一名从事 MVC 本身的开发人员,并且您已经了解 ApplicationPartManager 和 ControllerFeatureProvider 之间的区别,而无需解释任何内容。

在最简单的示例中,我特别想做的是启动 AspNetCore 2.0 Kestrel 服务器的实例,并让它仅解析预配置的硬编码单个控制器。我明确地不希望它做正常的发现之类的事情。

在 WebApi 中,您只需执行以下操作:

public class SingleControllerTypeResolver : IHttpControllerTypeResolver
{
    readonly Type m_type;

    public SingleControllerTypeResolver(Type type) => m_type = type;

    public ICollection<Type> GetControllerTypes(IAssembliesResolver assembliesResolver) => new[] { m_type };
}

// ...
// in the configuration:
config.Services.Replace(typeof(IHttpControllerTypeResolver), new SingleControllerTypeResolver(typeof(MySpecialController)))
Run Code Online (Sandbox Code Playgroud)

但是我一直试图使用 aspnetcore 2 获得等效的结果

c# asp.net-core-mvc asp.net-core-2.0

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

为什么 C# 中的 async/await 即使被告知不要返回可空值?

使用 C#8,Visual Studio 2019 16.7.2,给出以下 C# 代码:

#nullable enable

public async Task<string> GetStringAsync(); ...

public async void Main()
{
    var theString = await GetStringAsync();
    ...
}
Run Code Online (Sandbox Code Playgroud)

悬停在上面的智能感知theString显示局部变量(字符串?)theString的工具提示

我的GetStringAsync方法从不返回可为空的字符串,但该变量被推断为可为空的。

这是一个智能感知错误吗?或者是否有更深层次的事情theString由于某种有效的方式实际上可以为空await

c# visual-studio async-await nullable-reference-types

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

如果我在写入变量时锁定,在读取时是否还需要锁定,如果读取是原子的?

我有一个代码如下的类

private readonly object m_lock = new object();

private IClient m_client
private object m_context;
Run Code Online (Sandbox Code Playgroud)

设置客户端和上下文时,我按如下方式锁定

lock(m_lock)
{
    m_client = theClientFromSomewhere;
    m_context = contextObject;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我只需要m_client自己解决,这样做是否安全?

var localClient = m_client;

Debug.Assert(localClient != null);
localClient.DoStuff();
Run Code Online (Sandbox Code Playgroud)

m_client读取(在分配时localClient)保证是原子的,因此这应该在单个CPU上正常工作.

我可以(也在理论上)制作m_client变量volatile,然后通过防止其他CPU的无序读取,这在多个cpu中是安全的,但问题是,写入时锁定是否可以安全地读取不稳定?

写入"刷新"CPU缓存时是否锁定,以便在读取时不会出现乱序?

c# multithreading locking volatile

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

BitmapCache 导致 WPF 应用程序锁定

这是场景:

1:我们的WPF应用程序启动

2:WPF 应用程序加载各种用户控件,包括一些使用BitmapCacheWPF 4 中新功能的控件

3:点击 ctrl-alt-delete 或 win+l 或加载另一个需要 UAC 的应用程序

4:取消那个东西

WPF 应用程序现在没有响应,但问题出在 WPF 本身。所有后台线程上的所有应用程序逻辑都很好,您可以通过按 alt+f4 等与其交互,但屏幕永远不会重绘

注意事项:

  • 如果此时进入调试器,则没有用户代码在运行,这都是 WPF
  • 杀死 DWM.exe 使应用程序恢复活力
  • 如果我们取出BitmapCached 元素,它就不会锁定
  • 我制作了另一个使用 BitmapCache 的简单示例应用程序,它没有出现问题。

帮助!!

c# wpf

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

为 Java 编写或使用 span/slice 结构有什么意义吗?

背景:我正在编写一些通过网络序列化和反序列化二进制协议的代码,并且我正在编写 C#、Swift 和 Java 客户端代码。

我们从网络上获取一个数据包(字节数组),将其反序列化为结构树,然后遍历树查找内容。

在 C# 中,我使用了Span<T>结构体,它为您提供了现有内存缓冲区的“视图”。同样在 Swift 中,我使用了也可以充当“视图”的Data结构。在 C++ 中我可能会使用一些类似的概念。

本质上是这样的:

原始缓冲区:R_T1aaa_T2bbb_T3ccc.
解析为Root -> [Tag1[aaa],Tag2[bbb], Tag3[ccc]]

在上面的模型中,Root、Tag1、Tag2、Tag3 对象是在堆栈上分配的结构体。标记内容(aaa、bbb、ccc)只是指向底层原始缓冲区的指针,我们根本没有为它们分配或复制任何堆内存。

在 Java 中,我首先创建一个这样的类(@MarkRotteveel 善意地指出我可以使用 ByteBuffer 而不是创建自己的包装类):

class ByteArrayView {
    @NonNull final byte[] owner; // shared
    final int offset;
    final int length;
}
Run Code Online (Sandbox Code Playgroud)

我打算继续使用与 C#、Swift 中使用的相同模式,但是我想到了——我使用数组视图来避免堆分配,但是Java 中的所有内容都是堆分配。我分配对象,而不是byte[]在该位置复制一些值ByteArrayView,但它仍然是堆分配。

我知道,如果我有大的“切片”,那么像我的ByteArrayView或这样的东西java.nio.ByteBuffer会减少我的程序分配的内存总量,但在大多数情况下,我的标签很小 - 例如 4 字节、12 字节、32 字节。

byte[]如果小对象仍然在堆上,那么用包装对象交换小对象是否有任何有意义的结果?它真的会让事情变得更糟吗,因为在我们到达我们想要读取的实际字节之前有一个额外的间接寻址?额外的代码复杂性值得吗?

经验丰富的 Java 开发人员会在这里做什么?

java allocation

5
推荐指数
0
解决办法
1086
查看次数