小编The*_*gth的帖子

使用.NET 4.5和C#中的HttpClient进行HTTP HEAD请求

是否可以使用HttpClient.NET 4.5中的新创建HTTP HEAD请求?唯一的方法我能看到的是GetAsync,DeleteAsync,PutAsyncPostAsync.我知道HttpWebRequest-class能够做到这一点,但我想使用现代HttpClient.

.net c# httprequest .net-4.5

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

ffmpeg:哪种文件格式支持stdin使用?

我知道ffmpeg能够从中读取数据stdin而不是从磁盘中读取数据ffmpeg -i -.是否支持所有文件格式?如果不是,是否有支持哪种文件格式的列表?

stdin ffmpeg stdout file stream

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

在空项目中缺少类型Mono.Web.Util.RoleManagerSectionMapper

我已经从Git设置了最新的Mono(3.4.1)和最新的XSP并进行了编译.mono -V打印以下内容:

main@zombie# mono -V
Mono JIT compiler version 3.4.1 (master/89e0b25 Fri May 16 18:52:44 CEST 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            sgen
Run Code Online (Sandbox Code Playgroud)

现在我在Visual Studio 2013中创建了一个示例ASP.NET MVC项目.它包含一些基本页面.我选择使用非常简单的例子,没有认证的东西.在Windows上,它运行.在Mono上,出现以下错误:

System.TypeLoadException
Could not load type 'Mono.Web.Util.RoleManagerSectionMapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Description: HTTP 500.Error processing request.

Details: Non-web exception. Exception origin (name of application or object): mscorlib.
Exception stack trace:
    at …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc mono xsp

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

将控件视为ComboBox或TextBox

解决以下问题的最佳方法是什么?

foreach (Control control in this.Controls)
{
    if (control is ComboBox || control is TextBox)
    {
        ComboBox controlCombobox = control as ComboBox;
        TextBox controlTextbox = control as TextBox;

        AutoCompleteMode value = AutoCompleteMode.None;

        if (controlCombobox != null)
        {
            value = controlCombobox.AutoCompleteMode;
        }
        else if (controlTextbox != null)
        {
            value = controlTextbox.AutoCompleteMode;
        }

        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

您会发现它足够复杂以获取AutoCompleteMode属性.您可以假设我保证我有一个ComboBox或一个TextBox.

我的第一个想法是为T使用多种类型的泛型,但似乎这在.NET中是不可能的:

public string GetAutoCompleteModeProperty<T>(T control) where T: ComboBox, TextBox // this does not work, of course
Run Code Online (Sandbox Code Playgroud)

可悲的是,两个控件都没有共同的基类.

注意:这是一个与最小化示例一起使用的更一般的问题.在我的例子中,我还想访问/操纵其他AutoComplete*-proprties(两个控件都有共同点). …

.net c# generics

10
推荐指数
2
解决办法
2092
查看次数

.NET Core:使用异步时TcpClient.GetStream崩溃

我尝试使用.NET Core并希望连接到本地TCP服务器.当我同步进行时没有问题(参见第Connect一种方法).当我尝试使用async/ await(参见第二种ConnectAsync方法)时,它会变得疯狂并且几乎无法辨认.如果我正确使用TcpClient,我不会起诉,因为网上没有那么多的例子.调用后确切的问题开始了TcpClient.GetStream.我尝试使用Visual Studio Code中的JustMyCode禁用和All exceptions复选框进行调试- 但它不会跳转到TcpClient.GetStream.

async模式观察:

  • 有时它会TcpClient.GetStream直接崩溃
  • 有时它会在调用函数返回后崩溃(我看到最后一次Console.WriteLine出现在控制台中)
  • 程序立即停止,调试器关闭(没有异常抛出)
  • 返回码始终为零(The program 'bla' has exited with code 0 (0x00000000))

我的系统/项目设置:

  • Windows 10 64bit(教育)
  • .NET Core 1.0.0
  • 控制台应用
  • 本地TCP服务器,因此没有连接问题
  • Visual Studio代码(应该无关紧要)

码:

public class Connection
{
    private TcpClient _client;
    public NetworkStream Stream { get; private set; }
    private CancellationTokenSource _token;

    public Connection()
    {
        _token = new CancellationTokenSource();
        _client …
Run Code Online (Sandbox Code Playgroud)

c# sockets windows async-await .net-core

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

node.js-http:侦听本地unix管道/套接字

是否有可能在本地unix管道/套接字上本地监听node.js-http服务器?(例如/var/tmp/http.sock).我想将它与WebSockets和反向代理结合使用.

sockets http pipe websocket node.js

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

在谷歌上构建谷歌v8作为共享库?

是否可以使用Windows上的gyp将谷歌v8构建为共享库(msvc 2012)?我试过的一切都行不通.我尝试过的:

python build\gyp_v8 -Dcomponent=shared_library
python build\gyp_v8 library=shared
Run Code Online (Sandbox Code Playgroud)

第二个给出"库"未知的错误.第一个没有任何影响.

v8 build gyp

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

在Chrome扩展程序中作为TCP服务器监听的正确方法

我想创建一个TCP服务器并监听它.我需要访问标签内容,因此我需要Chrome扩展程序.遗憾的是,只有chrome应用程序可以创建TCP服务器.

在chrome应用程序中创建TCP服务器并让应用程序与扩展程序通信(这甚至可能吗?)是一个有效/好的概念吗?

如果没有,那么我的替代方案是什么?我唯一的想法是从服务器模型更改为客户端模型,并让扩展连接到外部服务器.这种解决方案在我的情况下会很差,所以我尽量避免它.

我想要实现的是我可以构建一个chrome扩展,通过远程访问修改/刷新内容(没有恶意).外部程序应该能够连接到扩展程序(或:应用程序)并将命令发送给它.

sockets google-chrome google-chrome-extension google-chrome-app

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

使用C#MEF将其他属性导入元数据

使用Web上的一些教程,我使用C#中的MEF为我的需求创建了一个元数据类

[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class)]
public class ActionMetadataAttribute : Attribute
{
    public bool HasSettingsDialog { get; set; }
    public bool UseThreadedProcessing { get; set; }
}

public interface IActionMetadata
{
    [DefaultValue(false)]
    bool HasSettingsDialog { get; }

    [DefaultValue(false)]
    bool UseThreadedProcessing { get; }
}
Run Code Online (Sandbox Code Playgroud)

我有不同类型的插件类型,所以有eg IHandlerMetadataHandlerMetadataAttribute.现在我通过Lazy帮助程序加载它以允许严格键入的元数据.

[ImportMany(typeof(IActionPlugin))]
private IEnumerable<Lazy<IActionPlugin, IActionMetadata>> _plugins = null;

public ActionManager()
{
    var catalog = new DirectoryCatalog(".");
    var container = new CompositionContainer(catalog);
    container.ComposeParts(this);

    foreach (var contract in _plugins)
    {
        Debug.WriteLine(contract.Metadata.HasSettingsDialog);
    }
}
Run Code Online (Sandbox Code Playgroud)

完美的工作.现在,我也想了解一些有关插件的信息.所以我创造了一个PluginInformationAttribute …

c# mef

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

使用KBDLLHOOKSTRUCT确定第一次按键

我正在Windows上使用低级键盘钩.尽管我目前无法判断该键是否最初被按下或再次按下,但它的工作方式却像魅力一样.该文档(+ 这里)说,这7位持有的过渡状态.但是当钥匙被释放时,这似乎才是真的.当我第一次按下键时,遗憾的是没有设置位7.

有没有办法判断最初是否按下了键?

windows winapi keyboard-hook

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

将dotnet核心(.NET Core)嵌入到Windows/Linux上的本机应用程序中

是否有可能将dotnet核心(.NET Core)环境嵌入到本机进程中?

我的用例是现有的游戏服务器,我想在Windows和Linux上使用C#在.NET Core上扩展游戏.

奖金问题:是否还会出现AppDomain像"oldschool".NET一样的概念?

c# linux windows .net-core coreclr

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

带有“凭据:true”的 fetch() 在 Chrome 中的 Tampermonkey 用户脚本中失败

Cookie发送时-header缺失credentials: true-fetch在Tampermonkey userscript -request在Chrome即使CORS配置是否正确。问题是什么?

附加信息:

相同的代码在 Firefox 中的 Tampermonkey 用户脚本中按预期工作。

我在跨域服务器上有一个 API 端点,该端点已正确配置为接受fetch带有credentials: true.

这是我当前的代码:

fetch('https://example.com/api/my/endpoint', {
    credentials: 'include',
    headers: {
        'Content-Type': 'application/json'
    }
});
Run Code Online (Sandbox Code Playgroud)

OPTIONS-preflight-请求example.com被成功返回制成具有以下标题:

access-control-allow-origin: https://requestingsite.com
allow: GET, OPTIONS
access-control-allow-methods: GET, OPTIONS
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Cookie, Authorization, Pragma
access-control-allow-credentials: true
Run Code Online (Sandbox Code Playgroud)

之后,发出GET-request to example.com。它在 Firefox 中按预期工作 - 它Cookie在请求中发送必要的-header。

但是,它在 Chrome 中不起作用。Chrome 中的请求包含必要的Origin-header 并匹配access-control-allow-origin服务器返回的标头中的内容。

fetch userscripts cors tampermonkey

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

SplitContainer 中的 FixedPanel 导致对大小的无知

我有以下代码将第一个面板的宽度设置为我需要的宽度(出于某种原因,我需要将 expectedWith 除以 2 以获得实际宽度为我的 expectedWith - 不知道为什么)。

splitContainer1.SplitterDistance = expectedWith / 2;
Run Code Online (Sandbox Code Playgroud)

接下来我需要的是第一个面板是固定的,这意味着如果您调整窗口大小,只有第二个面板变大而第一个面板保持大小。为了实现这一点,我使用以下行:

splitContainer1.FixedPanel = FixedPanel.Panel1;
Run Code Online (Sandbox Code Playgroud)

现在的问题:似乎 FixedPanel 属性完全忽略了第一个面板的大小。如果我使用 FixedPanel-line,我将 SplitterDistance-property 设置为哪个值并不重要。它总是一样的。如果我在表单设计器中设置 SplitterDistance 甚至都没有关系。

这个问题有方法解决吗?

.net c# winforms

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