小编Kei*_*ith的帖子

mscorlib.XmlSerializers.DLL的FileNotFoundException,它不存在

我正在使用XmlSerializer来反序列化mscorelib.dll中的特定类型

XmlSerializer ser = new XmlSerializer( typeof( [.Net type in System] ) );
return ([.Net type in System]) ser.Deserialize( new StringReader( xmlValue ) );
Run Code Online (Sandbox Code Playgroud)

这会FileNotFoundException在加载程序集时抛出一个catch :

"无法加载文件或程序集'mscorlib.XmlSerializers,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其中一个依赖项.系统找不到指定的文件."

FusionLog:

=== Pre-bind state information ===
LOG: User = ###
LOG: DisplayName = mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
 (Fully-specified)
LOG: Appbase = file:///C:/localdir
LOG: Initial PrivatePath = NULL
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization assemblies

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

有没有人比较LINQ运行性能基准测试

到过去的标准,如nHibernate,旧的定制ORM,或LLBGenPro之类的东西?

另外,运行基准测试后,您的建议是什么?

.net linq performance benchmarking .net-3.5

11
推荐指数
2
解决办法
1941
查看次数

如何使用单击一次应用程序设置文件关联?

我有一次点击应用程序.

我有一个关联文件,我存储应用程序的数据.

当用户点击其中一个文件时,我希望它打开click-once应用程序并加载文件.

我可以在发布中设置文件关联,正确设置图标和名称.单击该文件将打开该应用程序,但该应用程序似乎没有传递给该文件的路径 - 命令参数为空.

如何获取它以便将文件的路径传递给应用程序?

c# clickonce file-association

11
推荐指数
1
解决办法
2967
查看次数

使用.Net创建CalDAV服务

我想在我的应用程序中创建外部用户可以查看的日历.

CalDAV(基本上是WebDAV + iCalendar)格式似乎得到了相对广泛的支持,尽管某些客户端(例如Outlook)非常不同寻常.虽然对我来说完全是新的.

我想在外部发布事件,我不需要用户能够更新它们.

.ics文件中事件的文本格式显得相对简单:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN

BEGIN:VEVENT
DTSTART:20091130T000000Z
DTEND:20091201T000000Z
SUMMARY:Test event for calendar format
LOCATION:Company site
DESCRIPTION:Test event.\nMore text on a new line
END:VEVENT

END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

但是,我真的不想编写自己的ics文件构建器.从每行开始的键名在ics文件之间似乎也不一致.

那里有.Net实现吗?理想情况下,我不想设置整个WebDAV实现 - 只是能够检索只读日历.

我主要希望这是一个用户可以从iPhone,Android和Blackberry手机同步的网址.我知道他们可以处理来自某些供应商的CalDAV服务,但不能处理其他供应商(例如我的iPhone可以从Google日历同步但却没有使用FaceBook的活动) - 任何人都知道为什么?

我认为事件也可以包含MIME附件 - 这是否足以支持值得研究?

更新

对此的进一步研究发现,在大多数实施中存在一些奇怪的不一致.所有主流移动客户端操作系统(iPhone,Blackberry,Android)都无法处理.ics文件.

但是,iPhone可以从URL打开.ics(选择订阅日历),这也适用于FaceBook.然而,黑莓和Android不能.我认为Blackberry可以处理完整的CalDAV选项(而不仅仅是.ics文件),但对它的编程知之甚少.

有没有一致的方法来做到这一点?

.net iphone icalendar calendar caldav

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

HTTP缓存混乱

我不确定这是否是服务器问题,或者我是否无法理解HTTP缓存是如何工作的.

我有一个在IIS7上运行的ASP MVC应用程序.作为网站的一部分,有很多静态内容,包括大量的CSS,Javascript和图像文件.

对于这些文件,我希望浏览器将它们缓存至少一天 - 我们的.css,.js,.gif和.png文件很少更改.

我的web.config是这样的:

<system.webServer>
    <staticContent>
        <clientCache cacheControlMode="UseMaxAge" 
                     cacheControlMaxAge="1.00:00:00" />
    </staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是浏览器(经过测试的Chrome,IE8和FX)似乎没有像我期望的那样缓存文件.我有默认设置(在IE中自动检查新页面).

首次访问内容时按预期下载

HTTP/1.1 200 OK
Cache-Control: max-age=86400
Content-Type: image/gif
Last-Modified: Fri, 07 Aug 2009 09:55:15 GMT
Accept-Ranges: bytes
ETag: "3efeb2294517ca1:0"
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Mon, 07 Jun 2010 14:29:16 GMT
Content-Length: 918

<content>
Run Code Online (Sandbox Code Playgroud)

我认为Cache-Control: max-age=86400应该告诉浏览器不要再次请求页面一天.

好的,现在重新加载页面,浏览器再次请求图像.这次它使用这些标题获得空响应:

HTTP/1.1 304 Not Modified
Cache-Control: max-age=86400
Last-Modified: Fri, 07 Aug 2009 09:55:15 GMT
Accept-Ranges: bytes
ETag: "3efeb2294517ca1:0"
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Mon, 07 Jun 2010 …
Run Code Online (Sandbox Code Playgroud)

iis iis-7 caching http

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

在MVC和WebForms之间共享一个master - 处理<form>

我们有一个大型遗留应用程序,我们希望开始使用MVC来实现新功能.

为此,我们添加了自定义路由,例如:

routes.IgnoreRoute( "{*allaspx}", new { allaspx = @".*\.as[pmh]x(/.*)?" } );
Run Code Online (Sandbox Code Playgroud)

我们希望在旧的WebForms和新的MVC页面之间共享母版页.

这看起来很简单 - 改变了master继承ViewMasterPage而且它也可以用作MVC页面的master.

问题是HTML <form>.

主页面<form>顶部有一个标签,里面有3个内容面板,这就是WebForms喜欢它的方式.该Page控制将代替师傅的形式在页面指向回来了,这似乎是一个硬编码的行为.

所有三个内容面板都有WebForms控件,因此页面级别<form>标签需要在它们之外才能覆盖所有三个.像这样的东西:

<form id="form1" runat="server">
    ...
    <asp:contentplaceholder id="content1" runat="server" />
    ...
    <asp:contentplaceholder id="content2" runat="server" />
    ... //etc
</form>
Run Code Online (Sandbox Code Playgroud)

但是,对于MVC,我们希望使用Html.BeginForm帮助程序在视图中包含表单.HTML不允许您嵌套表单.MVC模式需要视图回发到不同的操作(例如,"详细信息"视图可能会回发到"编辑"操作).

有没有人知道这方面的好方法?

asp.net asp.net-mvc webforms

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

如何针对X509Certificate2Collection链验证X509Certificate2

我正在编写一个SAML 2.0响应解析器来处理ASP.Net中的POST身份验证(在C#和MVC中,但这不太相关).

所以我有一个.p7b要验证的文件,可以读入一个X509Certificate2Collection和一个示例断言 - 一个基本的64位编码的SAML响应.

理想情况下,我想使用内置的WSSecurityTokenSerializer,但失败了,所以我正在寻找一种有效的方法.

我正在直接读取XML:

// get the base 64 encoded SAML
string samlAssertionRaw = GetFromHttpRequest();

// load a new XML document
var assertion = new XmlDocument { PreserveWhitespace = true };
assertion.LoadXml(samlAssertionRaw);

// use a namespace manager to avoid the worst of xpaths
var ns = new XmlNamespaceManager(assertion.NameTable);
ns.AddNamespace("samlp", @"urn:oasis:names:tc:SAML:2.0:protocol");
ns.AddNamespace("saml", @"urn:oasis:names:tc:SAML:2.0:assertion");
ns.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl);

// get the signature XML node
var signNode = assertion.SelectSingleNode(
    "/samlp:Response/saml:Assertion/ds:Signature", ns);

// load the …
Run Code Online (Sandbox Code Playgroud)

.net x509certificate single-sign-on saml-2.0 pkcs#7

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

Response.IsClientConnected什么时候变慢?

我有一个长期运行的ASP响应(实际上是一个MVC动作),如果用户已经导航,我想取消它.我认为这应该很简单:

if(!this.Response.IsClientConnected)
{
    Response.End();
}
Run Code Online (Sandbox Code Playgroud)

不过,我已经遇到各种渠道开始,这种方法是缓慢的.

所以我运行自己的测试(使用MVC迷你探查器,虽然你可以使用自己的):

using (var step = MiniProfiler.Current.Step("Response_IsClientConnected"))
if(!this.Response.IsClientConnected)
{
    Response.End();
}
Run Code Online (Sandbox Code Playgroud)

结果发现每次我调用它都会非常快:我的开发人员设置不到1毫秒.这是真是假.

在什么情况下Response.IsClientConnected预计会很慢?

我必须支持IIS6 - 会Response.IsClientConnected更慢吗?

有谁知道它在幕后做了什么?在低级别,我希望TCP/IP堆栈知道连接是否仍然存在,所以我希望这个检查是即时的,但IIS是否还需要做一些额外的工作来检查?

asp.net iis performance

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

.Net Color结构是否使用HSB或HSL颜色空间?

据我所知,HSL和HSB颜色空间非常相似,两者都使用相同的0-360色轮作为色调,并使用相同的0-1值进行饱和.它们之间的一个区别是在HSB模型中你有亮度,其中0是黑色,1是全强度的颜色,而在HSL中你有亮度/亮度,其中0仍然是黑色但1是白色.

在.NET Color结构采用RGB空间,但GetHue(),GetSaturation()GetBrightness()功能.

这里的文档令人困惑.用于GetBrightness():

/// <summary>Gets the hue-saturation-brightness (HSB) brightness value for this 
/// System.Drawing.Color structure.</summary>
Run Code Online (Sandbox Code Playgroud)

好吧,这很有意义,.Net似乎正在使用HSB ......

/// <returns>The brightness of this System.Drawing.Color. The brightness ranges 
/// from 0.0 through 1.0, where 0.0 represents black and 1.0 represents white.
/// </returns>
Run Code Online (Sandbox Code Playgroud)

呃......所以最大值代表白色,而不是最亮的颜色.尽管他们的文档和命名始终指的是亮度,但我很确定返回的值实际上是亮度/亮度,即.Net实际上使用HSL模型而不是HSB.

谁能证实这一点?它是文档中的错误GetBrightness(),错误,还是我以某种方式误解了理论?

.net hsl system.drawing hsb color-theory

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

画布中的drawImage来自视频帧,改变了色调

我写了一个简单的脚本,从视频中取出一个帧并将其绘制到画布上.我的问题是视频和绘制图像之间的颜色正在变化.

我把结果放在原件旁边,以便更容易看到.原来的是在左边.它似乎在Chrome浏览器btw上更加明显.我在OSX上所做的所有测试.

这里有一个片段,左边是画布,右边是视频:

 // Get our mask image
var canvas = document.querySelector(".canvas");
var video = document.querySelector(".video");

var ctx = canvas.getContext('2d');
function drawMaskedVideo() {
  ctx.drawImage(video, 0, 0, video.videoWidth/2, video.videoHeight, 0,0, video.videoWidth/2,  video.videoHeight);
}

requestAnimationFrame(function loop() {
  drawMaskedVideo();
  requestAnimationFrame(loop.bind(this));
});
Run Code Online (Sandbox Code Playgroud)
html, body {
  margin: 0 auto;
}
.video, .canvas {
  width: 100%;
}

.canvas {
  position: absolute;
  top: 0;
  left: 0;
}
Run Code Online (Sandbox Code Playgroud)
<video class="video" autoplay="autoplay" muted="muted" preload="auto" loop="loop">
    <source src="http://mazwai.com/system/posts/videos/000/000/214/original/finn-karstens_winter-wonderland-kiel.mp4" type="video/mp4">
</video>
<canvas class='canvas' width='1280' height='720'></canvas>
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会发生这种情况,如果有可能以跨浏览器的方式摆脱它?

在此输入图像描述

这里写的简单脚本:

let video = document.querySelector('#my-video') …
Run Code Online (Sandbox Code Playgroud)

javascript drawimage html5-video html5-canvas

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