我已经看到了许多不同的JSON日期格式标准:
"\"\\/Date(1335205592410)\\/\"" .NET JavaScriptSerializer
"\"\\/Date(1335205592410-0500)\\/\"" .NET DataContractJsonSerializer
"2012-04-23T18:25:43.511Z" JavaScript built-in JSON object
"2012-04-21T18:25:43-05:00" ISO 8601
Run Code Online (Sandbox Code Playgroud)
哪一个是正确的?还是最好的?这有什么标准吗?
在我的HTML表单中,我输入了类型文件,例如:
<input type="file" multiple>
Run Code Online (Sandbox Code Playgroud)
然后我通过单击该输入按钮选择多个文件.现在我想在提交表单之前显示所选图像的预览.如何在HTML 5中做到这一点?
MSDN文档似乎没有很好地覆盖HTML5 WebSockets协议的 ASP.net 4.5支持!
这就是我要找的东西:
更新:
可以在Adobe Media Server应用程序服务器上很好地配置来自Flash RTMP套接字(websocket的替代方案)的请求.对于ASP.net内部应用程序或IIS 8配置,请求数量,理想时间,块大小,......的任何配置都不是吗?
我Microsoft.Web.Optimization
通过Visual Studio 2012 试用版已经使用了一段时间了.我认为优化命名空间将是.NET 4.5的一部分,如此处所述.
但是,我安装了Visual Studio 2012和.NET Framework 4.5的新版本,现在System.Web.Optimization
默认没有命名空间!我不得不通过NuGet安装软件包
VS 2012 Ultimate版本尚未完成吗?或者,Microsoft.Web.Optimization
命名空间不在.NET 4.5中?
我知道之前已经讨论过了,但是我没有找到实际的解决方案/解决方法,我希望有人知道如何解决这个问题!
这是:
如果您尝试window.print()
在google Chrome中在一个页面内频繁调用方法(就像用户点击打印按钮一样),浏览器会在控制台中抛出一条警告消息,说明:
忽略过于频繁的print()调用
没有任何反应!几秒钟后,事情恢复正常,window.print()
再次调用命令时会出现打印对话框!更糟糕的是,优秀的Chrome用户使用指数等待时间来调用打印命令的页面,这意味着用户点击打印按钮的次数越多,他就越需要等待打印对话框出现!
这个问题已经在chrome中使用了相当长的时间(14个后续版本),并且它被确认为一个Area-UI
错误,我昨天再次为Google团队发布了这个问题,希望Chrome团队的某个人能够验证这个令人难以置信的烦人功能何时会被修复!
但是,我在这里寻找的是这个问题的解决方法,有什么我可以做的能够使这个工作吗?我的公司正在开发一个高度交易的金融系统,其中包含大量需要打印的报告,对于这个小故障,整个项目都有可能在我最喜欢的谷歌Chrome浏览器中运行!
更新:
以下是Chrome浏览器中导致此功能的代码,看起来在有人再次调用print命令之前需要至少2秒,因此UI中2秒间隔的计时器可能会阻止进入无限等待回调!还有其他想法吗?
我想知道Linq扩展方法是否是原子的?或者,在进行任何迭代之前,我是否需要跨线程使用的lock
任何IEnumerable
对象?
声明变量volatile
对此有何影响?
总结一下,以下哪项是最好的,线程安全,操作?
1-没有任何锁:
IEnumerable<T> _objs = //...
var foo = _objs.FirstOrDefault(t => // some condition
Run Code Online (Sandbox Code Playgroud)
2-包括锁定语句:
IEnumerable<T> _objs = //...
lock(_objs)
{
var foo = _objs.FirstOrDefault(t => // some condition
}
Run Code Online (Sandbox Code Playgroud)
3-将变量声明为volatile:
volatile IEnumerable<T> _objs = //...
var foo = _objs.FirstOrDefault(t => // some condition
Run Code Online (Sandbox Code Playgroud) 鉴于TypeScript是开源的,这个基于Web的IDE是否也可作为可在任何地方下载的工具使用?
我正在开发一个Web应用程序,客户端可以在其中编写用户定义的表达式(使用用户定义的变量和预定义的方法),使用C#.Net在服务器上运行时对其进行评估,编译和使用.使用TypeScript及其精彩的基于Web的编辑器的功能,如语法或错误突出显示,代码完成,方法签名建议等,在用户界面中省去了很多麻烦.
那么这个编辑器也是TypeScript的一部分吗?如果没有,是否有其他具有类似功能的开源解决方案?
我被一位同事质疑我在ASP.net客户端应用程序中实现WCF Windows服务的设计模式,我真的不知道它是Bridge还是Adapter!
这是实施:
我一直认为它是适配器模式的实现,但实际上我不知道为什么它不是Bridge!
我已经阅读了SO,GoF和维基百科中的所有帖子,但它确实没有意义!
根据我的理解,两种模式都指向一个现有的类型,都将抽象与其实现分离,我错过了一个观点?
这是来自GoF:
这些模式之间的关键区别在于它们的意图.Adapter专注于解决两个现有接口之间的不兼容问题.它没有关注这些接口的实现方式,也没有考虑它们如何独立发展.这是一种让两个独立设计的类一起工作而不重新实现其中一个的方法.另一方面,Bridge桥接了一个抽象及其(可能很多)实现.它为客户提供了一个稳定的界面,因为它允许您改变实现它的类.随着系统的发展,它还适应新的实现.
我不完全理解上述说法,
更新:
再次来自GoF:
请记住,适配器使两个现有接口协同工作,而不是定义一个全新的接口.
是否意味着更改现有接口以便它可以与另一个接口一起使用是Adapter的实现?
UPDATE2:
刚刚发现这篇令人难以置信的文章:C#中的插图GOF设计模式
这是真正的Bridge Patter结构:
我错过了Bridge模式允许您组合不同的抽象和实现并独立扩展它
的事实
意思是你不能使用这样的东西?
class Helpers
{
static ObjectAs<T>(val: any): T {
if (!(val instanceof T)) {
return null;
}
return <T>val;
}
}
Run Code Online (Sandbox Code Playgroud)
获取泛型声明的基础类型的任何解决方法?
更新1:
正如Ryan Cavanaugh所说,在编译时,整个类型系统被删除,更像是Java的泛型实现.我相信.Net实现Generics以保存已编译代码中的类型信息比Java更好.但是,我不禁要问,为什么不能在TypeScript中允许对泛型类型和泛型类型参数进行完全运行时内省?为什么TypeScript的设计者决定在运行时删除所有泛型类型信息?
以下TypeScript代码:
function As<T>(n: any): T {
if (n instanceof T) {
return n;
} else {
return null;
}
}
var obj: Object = 1;
var x = As<number>(obj);
Run Code Online (Sandbox Code Playgroud)
可以翻译成这个JavaScript代码:
function As(n, T) {
if (n instanceof T) {
return n;
} else {
return null;
}
}
var obj = 1;
var x = …
Run Code Online (Sandbox Code Playgroud) 首先,有多大被认为是大的?反正有没有确定一个对象在堆中的大小?
.Net 4.5.1附带LargeObjectHeapCompactionMode
:
在将LargeObjectHeapCompactionMode属性设置为GCLargeObjectHeapCompactionMode.CompactOnce之后,下一个完全阻塞垃圾收集(以及LOH的压缩)将在不确定的未来时间发生.您可以使用以下代码立即压缩LOH:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
Run Code Online (Sandbox Code Playgroud)
据我所知,压缩LOH是件坏事!那么哪一个最差?紧凑型LOH或LOH碎裂?
我有一个在IIS 7.5上运行的ASP.Net 4.0 Web应用程序,我可以使用System.Drawing.Printing.PrinterSettings.InstalledPrinters
命令获取已安装打印机的列表,并将应用程序中的每个报告分配给上面列出的任何打印机!
服务器上可能有一些网络连接打印机都设置了对应用程序用户帐户的完全权限,一切正常,直到应用程序的用户帐户退出窗口,此时System.Drawing.Printing.PrinterSettings.InstalledPrinters
只返回本地打印机,没有列出网络连接打印机!
我试图通过以下方式向用户模拟ASP.Net进程并访问网络打印机,但没有成功:
Process Model
为以特定用户身份运行.我在Web.Config中模拟了应用程序的身份给特定用户:
<identity impersonate="true" userName="user" password="pass"/>
最后使用advapi32.dll
API 在代码中实现模拟
在上述所有方法中,WindowsIdentity
打印时返回真实用户名:
System.Security.Principal.WindowsIdentity.GetCurrent().Name
Run Code Online (Sandbox Code Playgroud)
但看起来假冒不是问题,用户注销的那一刻,所有的网络连接打印机都不见了!
有谁知道如何解决这个问题?即使用户未登录,有没有办法访问网络连接的打印机?
有没有办法使用 DLR 来引用 C# 中的方法?
在像 JavaScript 或 Python 这样的动态语言中,我可以轻松地将一个方法作为参数传递给另一个方法。在 C# 是静态类型语言中,我要么使用Delegate
需要大量转换的类型:
public static void AddMethod(Delegate del)
{
// implementation
}
Run Code Online (Sandbox Code Playgroud)
然后每当我调用此方法时使用强制转换
static void Main(string[] args)
{
AddMethod(new Func<object, bool>(Test));
}
public static bool Test(object obj)
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
或者,我需要定义几十个重载来满足任何方法调用:
public static void AddMethod<TResult>(Func<TResult> method)
{
}
public static void AddMethod<T, TResult>(Func<T, TResult> method)
{
}
public static void AddMethod<T1, T2, TResult>(Func<T1, T2, TResult> method)
{
}
public static void AddMethod<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> …
Run Code Online (Sandbox Code Playgroud) 在我的数据库中有一个存储过程,它继续恢复到旧的,我Alter
使用Management Studio存储过程,但不久之后,意外地,存储过程变为之前的存储过程Alter
!这在过去几个小时里已经发生了好几次!
我确信程序中没有任何地方或手动更改存储过程.我检查了所有代理作业,只有一个Maintenance job
用于每小时备份,另一个用于Replication
,但Replication Schema Changes
设置为false
,并且存储过程未在列表中定义Publication Articles
这种行为还有其他可能的原因吗?我是否需要在SQL Server数据库中手动设置CHECKPOINT?