是否可以使用HttpClient
.NET 4.5中的新创建HTTP HEAD请求?唯一的方法我能看到的是GetAsync
,DeleteAsync
,PutAsync
和PostAsync
.我知道HttpWebRequest
-class能够做到这一点,但我想使用现代HttpClient
.
我知道ffmpeg能够从中读取数据stdin
而不是从磁盘中读取数据ffmpeg -i -
.是否支持所有文件格式?如果不是,是否有支持哪种文件格式的列表?
我已经从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) 解决以下问题的最佳方法是什么?
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 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)
)我的系统/项目设置:
码:
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) 是否有可能在本地unix管道/套接字上本地监听node.js-http服务器?(例如/var/tmp/http.sock).我想将它与WebSockets和反向代理结合使用.
是否可以使用Windows上的gyp将谷歌v8构建为共享库(msvc 2012)?我试过的一切都行不通.我尝试过的:
python build\gyp_v8 -Dcomponent=shared_library
python build\gyp_v8 library=shared
Run Code Online (Sandbox Code Playgroud)
第二个给出"库"未知的错误.第一个没有任何影响.
我想创建一个TCP服务器并监听它.我需要访问标签内容,因此我需要Chrome扩展程序.遗憾的是,只有chrome应用程序可以创建TCP服务器.
在chrome应用程序中创建TCP服务器并让应用程序与扩展程序通信(这甚至可能吗?)是一个有效/好的概念吗?
如果没有,那么我的替代方案是什么?我唯一的想法是从服务器模型更改为客户端模型,并让扩展连接到外部服务器.这种解决方案在我的情况下会很差,所以我尽量避免它.
我想要实现的是我可以构建一个chrome扩展,通过远程访问修改/刷新内容(没有恶意).外部程序应该能够连接到扩展程序(或:应用程序)并将命令发送给它.
sockets google-chrome google-chrome-extension google-chrome-app
使用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 IHandlerMetadata
和HandlerMetadataAttribute
.现在我通过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 …
是否有可能将dotnet核心(.NET Core)环境嵌入到本机进程中?
我的用例是现有的游戏服务器,我想在Windows和Linux上使用C#在.NET Core上扩展游戏.
奖金问题:是否还会出现AppDomain
像"oldschool".NET一样的概念?
在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
服务器返回的标头中的内容。
我有以下代码将第一个面板的宽度设置为我需要的宽度(出于某种原因,我需要将 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 甚至都没有关系。
这个问题有方法解决吗?
c# ×6
.net ×3
sockets ×3
windows ×3
.net-core ×2
.net-4.5 ×1
asp.net-mvc ×1
async-await ×1
build ×1
coreclr ×1
cors ×1
fetch ×1
ffmpeg ×1
file ×1
generics ×1
gyp ×1
http ×1
httprequest ×1
linux ×1
mef ×1
mono ×1
node.js ×1
pipe ×1
stdin ×1
stdout ×1
stream ×1
tampermonkey ×1
userscripts ×1
v8 ×1
websocket ×1
winapi ×1
winforms ×1
xsp ×1