我有一个网页,需要能够从运行浏览器的本地计算机将文件加载到DOM中.我发现使用HTML 5 File API很容易做到这一点.
我可以这样做:
var reader = new FileReader();
reader.onload = function (fileContents) { ... load contents to a div ... }
reader.readAsText(f) //where f is an HTML5 File object
Run Code Online (Sandbox Code Playgroud)
令人讨厌的是,我需要在IE7中工作,还有一些早期版本的Firefox不支持API.有没有简单的方法可以在旧浏览器中将本地文件加载到DOM中?
非常感谢!
今天早上我的大脑有一个段错误,试图准确理解C#如何以及何时可以从对该对象的引用中计算出对象的类型.请考虑以下高度非原创的示例代码:
class Foo { public virtual void Baz() { } }
class Bar : Foo { }
class Program {
static void Main() {
Foo f = new Bar();
f.Baz();
}
}
Run Code Online (Sandbox Code Playgroud)
引用的类型有Foo,但实际创建的对象实例是Bar.Bar实例有一些开销,即同步块索引,以及对MethodTable的引用,可能是Bar的MethodTable.如果查看堆上的Bar对象,其类型的唯一线索是MethodTable引用,这表明它是一个Bar.
然后问题.有没有办法让C#从实际的对象图中知道'f'是Foo,如果是,怎么样?引用'f'是否包含类型信息本身?当我打电话给f.Baz()时,我是否认为通过Bar的MethodTable进行调度?是否只是这种情况,C#编译器使用流量分析来计算正在发生的事情并防止任何非法操作?CLR在被翻译成IL时真的不关心Foo的类型声明吗?
如果这是一个冗长且措辞不佳的问题,请道歉 - 请告诉我是否需要澄清!
TL; DR - CLR中的多态引用如何工作?如何保持实际与声明的类类型之间的差异,并且您能告诉原始声明来自结果IL吗?
我刚学会(艰难的方法)数据绑定不适用于字段.考虑到自动属性的简单性,这不是问题,但我想知道为什么会这样.谁能解释一下?
我目前处于不幸的位置,不得不通过COM Interop从C#调用VBA宏.宏返回一个字符串数组,看起来像:
Public Function Foo() As String()
Run Code Online (Sandbox Code Playgroud)
然后我试图在C#中转换为一个字符串数组,如下所示:
var result = (string[])xlApp.Run("Foo", ... missing args ...)
Run Code Online (Sandbox Code Playgroud)
然后导致运行时错误:
无法将类型为'System.String [*]'的对象强制转换为'System.String []'.
有谁知道String [*]是什么,你是否知道如何将它转换为C#string []?这个演员在我创建的一个简单测试用例中工作.我能看到的唯一区别是,在简单的情况下,我在VBA中的数组是字符串类型(0到5),而在更复杂的情况下,它是字符串类型(1到6).这可能是原因,如果是这样,我的VBA相当生疏 - 我该如何解决?
非常感谢,
乔恩
我目前有一组报告,其中包含许多常用函数,这些函数位于.rdl文件中的代码块中.这显然是一个可维护性问题,我想知道是否有人知道这些不同的报告共享公共代码库的方法?
理想情况下,我希望将.Net程序集附加到我的Reporting Services项目,我的所有报告都可以从中访问和调用函数.这样可以避免每次需要对常用功能进行更改时尝试更新和重新部署大约100个报告的麻烦.
有什么建议?
为了实现编程启蒙,我正在尝试在Rails生态系统中构建我的最新网站.作为一名.Net开发人员,我发现这非常困难,需要向正确的方向努力,因为我正处于放弃和回到我所知道的边缘.
我有一些接近Rails原型的东西,并且一直试图找出如何达到我有一个明智的部署设置来发布这个东西的测试版.在我知道我能以合理的方式发表之前,我没有看到任何进一步发展的任何意义.
到目前为止,我已经注册了在HostingRails的托管,在Google Code上创建了一个SVN存储库并安装了Capistrano.我现在面临的问题是我不知道如何改变我的Capfile和Deploy.rb来让这些人互相交谈,而那是在我考虑数据库部署之前.问题是托管服务提供商的教程不是很好,卡皮斯特拉诺的文档直截了当.我正处于Capistrano向我提供密码提示的地方,并且没有与我所知道的任何密码有关的密码似乎都有效.Capistrano没有给我一些它正在尝试做的事情,我不知道如何验证配置文件中的任何行以找出错误.
任何人都可以建议一个完整的工具链,使我能够尽可能少地发布应用程序吗?我是否会在模糊的方向上走向正确的方向,这也会给我合理的数据库部署选项吗?任何人都可以建议一个简单的分步指南,在部署之前不需要了解37个独立的宝石吗?
有没有人知道使用LINQ to SQL访问存储过程文本的方法?我想审核一组存储过程,以检查它们是否包含一些常见代码.
感觉应该有一种通过LINQ to SQL数据上下文打开它们的好方法,但我不知道如何.有什么建议?
只是想知道是否有任何LINQ大师可能能够阐明Aggregate和Any如何在幕后工作.
想象一下,我有一个IEnumerable,它存储测试给定条件的数组的结果.我想确定数组的任何元素是否为false.有什么理由我更喜欢一种选择吗?
IEnumerable<bool> results = PerformTests();
return results.Any(r => !r); //Option 1
return results.Aggregate((h, t) => h && t); //Option 2
Run Code Online (Sandbox Code Playgroud)
在生产代码中,我倾向于1,因为它更加明显,但出于好奇,我们想知道这些内容的评估方式是否存在差异.
c# ×5
clr ×1
com ×1
data-binding ×1
deployment ×1
interop ×1
javascript ×1
linq ×1
linq-to-sql ×1
sql-server ×1
vba ×1