Tag: C#的

将列表序列化为JSON

我有一个像这样的对象模型: public MyObjectInJson { public long ObjectID {get;set;} public string ObjectInJson {get;set;} } ObjectInJson属性是一个已经序列化的版本,它是一个包含嵌套列表的对象。 目前,我正在像这样手动序列化MyObjectInJson的列表: StringBuilder TheListBuilder = new StringBuilder(); TheListBuilder.Append("["); int TheCounter = 0; foreach (MyObjectInJson TheObject in TheList) { TheCounter++; TheListBuilder.Append(TheObject.ObjectInJson); if (TheCounter != TheList.Count()) { TheListBuilder.Append(","); } } TheListBuilder.Append("]"); return TheListBuilder.ToString(); 我不知道是否可以用JavascriptSerializerreplace这种危险的代码,并得到相同的结果。 我将如何做到这一点? 谢谢。

为什么ReSharper想把“var”用于一切?

我刚刚开始在Visual Studio中使用ReSharper(在SO之后的许多build议之后)。 尝试一下,我打开了一个最近的ASP.NET MVC项目。 我注意到的第一个也是最常见的事情之一就是将大部分/全部显式声明改为var 。 例如: //From This: MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); //To This: var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); 甚至简单的types,如int , bool等等。 为什么这被推荐? 我不是来自计算机科学或.NET背景,最近已经“陷入”了.NET开发,所以我真的很想知道发生了什么,是否有益。

缺less非void方法中的return语句编译

我遇到了一个非void方法缺lessreturn语句并且代码仍在编译的情况。 我知道while循环之后的语句是无法访问的 (死代码),永远不会被执行。 但是,为什么编译器甚至不会提醒你返回什么? 或者为什么一种语言允许我们有一个无限循环而不返回任何东西的非空方法? public int doNotReturnAnything() { while(true) { //do something } //no return statement } 如果我在while循环中添加一个break语句(即使是条件语句),编译器会抱怨臭名昭着的错误:“方法不返回值”(Eclipse)和“不是所有的代码path都返回值”(Visual Studio) public int doNotReturnAnything() { while(true) { if(mustReturn) break; //do something } //no return statement } Java和C#都是如此

我可以使用FileInfo.CopyTo()在.NET中显示文件复制进度?

我在c#(.NET 2.0 Framework)中创build了一个复制实用程序,用于复制文件,目录和recursion子目录等。该程序具有一个显示正在复制的当前文件的GUI,当前文件编号(序列),总数要复制的文件以及复制操作完成的百分比。 还有一个进度条,即基于当前文件/总文件。 我的问题与复制大文件有关。 我一直无法find一个方法来指示一个大文件的总复制进度(使用我当前的类结构utilitz FileInfo.CopyTo方法)。 作为一种解决方法,我已经将文件复制操作和GUI显示分离到各自的线程,并设置了一个可视提示来显示正在完成的工作。 至less用户知道程序没有被冻结,并且仍在复制文件。 能够根据字节总数显示进度或者从FileInfo.CopyTo方法触发某种types的事件将会更好,该方法指示从当前文件复制的总字节数。 我知道FileInfo.Length属性,所以我敢肯定,有一种方法MacGuyver我自己的事件是基于这个,并在阅读更新(可能基于检查FileInfo的东西的GUI一侧的处理程序。目标对象的长度属性使用某种types的定时器?)。 有没有人知道一种方法来做到这一点,我俯瞰。 如果我能避免它,我宁愿不重写我的类通过stream复制字节,并跟踪它(虽然我想我可能会坚持走这条路线)。 提前致谢 PS – 我现在坚持使用.NET 2.0框架,所以任何需要> = 3.0以上function的解决scheme都不适合我。 PPS – 我对任何.NET语言的解决scheme都很开放,不仅仅是c#。

将DataTable转换为CSVstream

目前有一个DataTable,但希望通过WebHandler将其stream式传输给用户。 FileHelpers有CommonEngine.DataTableToCsv(dt, "file.csv") 。 但它将其保存到文件中。 我怎样才能把它保存到stream? 我知道如何做到这一点,当我知道在先进的列或他们没有改变,但我想直接从数据表生成列标题。 如果我知道列我刚创build类: [DelimitedRecord(",")] public class MailMergeFields { [FieldQuoted()] public string FirstName; [FieldQuoted()] public string LastName; } 然后使用FileHelperEngine并添加logging: FileHelperEngine engine = new FileHelperEngine(typeof(MailMergeFields)); MailMergeFields[] merge = new MailMergeFields[dt.Rows.Count + 1]; // add headers merge[0] = new MailMergeFields(); merge[0].FirstName = "FirstName"; merge[0].LastName = "LastName"; int i = 1; // add records […]

使用模板的C ++隐式types转换

我有一个模板class A template <unsigned int m> class A { public: A(int) {} }; 其中有一个来自int的构造函数。 我有一个操作: template<unsigned int m> A<m> operator+(const A<m>&, const A<m>&) { retrun A<m>(0); } 但是当我打电话给: A<3> a(4); A<3> b = a + 5; A<3> c = 5 + a; 我想int被隐式转换为A,但是编译器会抛出错误。 有什么优雅的方式来启用隐式转换,而不使用这样的解决scheme: a + A<m>(5) operator+<3>(a, 5)

如何与ctypes一起使用C ++类?

我刚刚开始使用ctypes,并希望使用C ++类,我已经使用ctypes在python内导出的dll文件。 所以可以说我的C ++代码看起来像这样: class MyClass { public: int test(); … 我会知道创build一个包含此类的.dll文件,然后使用ctypes在python中加载.dll文件。 现在我将如何创build一个MyClasstypes的对象并调用它的testing函数? 这甚至可能与ctypes? 或者我会考虑使用SWIG或Boost.Python,但ctypes似乎是小项目的最简单的select。

在asp.net中调整图像大小而不会丢失图像质量

我正在开发一个ASP.NET 3.5 Web应用程序,允许我的用户上传jpeg,gif,bmp或png图像。 如果上传的图片尺寸大于103 x 32,我想将上传的图片大小调整为103 x 32。我已经阅读了一些博客文章和文章,也尝试了一些代码示例,但是没有任何一个可以正常工作。 有没有人成功做到这一点?

使用XML在app.config中包含或configuration引用来包含其他configuration文件的设置

我有我的app.config标准日志logging,NHibernate等configuration块,我想提取它们到一个通用的XML文件,可以作为我的应用程序的所有app.config文件引用。 这可能吗?

如何在Visual Studio中使用LinqPad .Dump()扩展方法?

LINQPad是惊人的,尤其有用的是Dump()扩展方法,它能够将几乎任何types的对象和结构(匿名或不可匿名Dump()呈现给控制台。 最初,当我转移到Visual Studio 2010时,我尝试使用委托创build自己的Dump方法来获取为匿名types呈现的值等等。虽然这很有趣,但是起初我很需要一个坚实的实施。 检查了reflection器中的LINQPad代码后,我更加确信,我不会执行正确的操作。 有没有免费的图书馆,我可以包括提供Dumpfunction?