在C#中使用枚举作为数组索引

我想在这个问题上做同样的事情,那就是: enum DaysOfTheWeek {Sunday=0, Monday, Tuesday…}; string[] message_array = new string[number_of_items_at_enum]; … Console.Write(custom_array[(int)DaysOfTheWeek.Sunday]); 但是,我宁愿有一些不可或缺的东西,而不是写这个容易出错的代码。 C#中是否有内置模块可以做到这一点?

通用约束和接口实现/inheritance

不完全确定如何表达这个问题,因为它是“为什么这不起作用?” 查询类型。 我已将我的特定问题减少到此代码: public interface IFoo { } public class Foo : IFoo { } public class Bar where T : IFoo { public Bar(T t) { } public Bar() : this(new Foo()) // cannot convert from ‘Foo’ to ‘T’ { } } 现在, Bar类中的generics类型T 必须实现IFoo。 那么为什么编译器会在评论中给出错误? 当然,Foo的一个实例是IFoo,因此可以作为generics类型T的代表传递? 这是编译器限制还是我遗漏了什么?

如何使用Entity Framework Code-First方法将double 数组存储到数据库

如何使用Entity Framework Code-First将数组的双精度数据存储到数据库中,而不影响现有代码和体系结构设计? 我查看了Data Annotation和Fluent API,我还考虑将double数组转换为字节字符串,并将该字节存储到自己的列中的数据库中。 我无法访问public double[] Data { get; set; } public double[] Data { get; set; } 使用Fluent API的属性,我得到的错误消息是: double[]类型必须是不可为空的值类型才能将其用作参数’T’。 存储Data的类成功存储在数据库中,以及与此类的关系。 我只缺少Data列。

在为ASP.NET MVC 2.0应用程序注册区域时提供或过滤程序集

我有一个大型应用程序,目前作为WebForms和MVC 2.0的混合体存在。 启动我的应用程序是可怕的,罪魁祸首主要是因为AreaRegistration.RegisterAllAreas调用。 更具体地说,它正在使用System.Web. Compilation.BuildManager.GetReferencedAssemblies System.Web. Compilation.BuildManager.GetReferencedAssemblies枚举应用程序直接引用的程序集中的所有类型,并测试它们是否派生自AreaRegistration 。 不幸的是,我有许多第三方程序集恰好相当广泛,所以这个初始加载可能非常糟糕。 如果我可以告诉它哪些程序集要查找AreaRegistrations ,或者甚至手动注册区域,我会有更好的结果。 我可以收集AreaRegistration所有内部来创建和调用注册,但我只是好奇其他人是否已经解决了这个问题。

适用于.NET的强大SMPP库

我正在开发一个在线SMS信使,并正在寻找一个可扩展且强大的.NET SMPP库。 我看到了EasySMPP(但对它有一些疑问)和RoamingSMPP。 还有一个,但我不记得它的名字。 对我来说,最重要的是它的可扩展性,稳定性和容错性。 我可能每秒有500k +用户和几百条短信。 通讯将是2路,接收应该能够回复从我的信使收到的短信。 所以我有兴趣推荐适合我需求的图书馆吗? 如果它是免费的或商业的,对我来说无关紧要。 谢谢

如何从程序中启动Azure存储模拟器

我有一些使用Azure存储的unit testing。 在本地运行这些时,我希望它们使用Azure存储模拟器,它是Azure SDK v1.5的一部分。 如果模拟器没有运行,我希望它能够启动。 要从命令行启动模拟器,我可以使用: “C:\Program Files\Windows Azure SDK\v1.5\bin\csrun” /devstore 这很好用。 当我尝试使用这个C#代码启动它时,它会崩溃: using System.IO; using System.Diagnostics; … ProcessStartInfo processToStart = new ProcessStartInfo() { FileName = Path.Combine(SDKDirectory, “csrun”), Arguments = “/devstore” }; Process.Start(processToStart); 我试过摆弄一些ProcessStartInfo设置,但似乎没有任何效果。 有人有这个问题吗? 我检查了应用程序事件日志,找到了以下两个条目: 事件ID:1023 .NET运行时版本2.0.50727.5446 – 致命执行引擎错误(000007FEF46B40D2)(80131506) 事件ID:1000故障应用程序名称:DSService.exe,版本:6.0.6002.18312,时间戳:0x4e5d8cf3故障模块名称:mscorwks.dll,版本:2.0.50727.5446,时间戳:0x4d8cdb54exception代码:0xc0000005故障偏移:0x00000000001de8d4故障处理id:0x%9错误应用程序启动时间:0x%10错误应用程序路径:%11错误模块路径:%12报告ID:%13

如何使用ngen.exe进行编译以及如何运行生成的本机代码?

我想使用ngen命令行编译一个C#程序用于特殊目的。 所以我在VS2010中创建了一个控制台应用程序并命名为ngentest 。 在vs2010\projects\ngentest\bin\debug创建名为ngentest.vshost.exe的文件。 我在VS2010命令提示符中使用此文件作为ngen命令参数,如下所示: ngen “c:\documents\vs2010\projects\ngentest\bin\debug\ngentest.vshost.exe” 但是当我这样做时,我无法接收PublicKeyToken ,我无法在任何地方找到任何组件! 如果我的程序集已创建,它在哪里? 我怎么能找到它? 我如何运行它(使用命令,或……!)来获取输出? 否则,当我从VS的Build菜单中使用build ngen构建我的项目时,会在提到的目录中创建一些文件,其中一个是ngentest.exe 。

使用DirectoryServices.AccountManagement从OU获取组

我想使用AccountManagement列出组织单位中的所有组。 以下代码段与DirectoryServices一起使用,但我必须在结果中使用DirectoryEntry路径实现GroupPrincipal(这感觉就像一个脏修复)。 DirectoryEntry root = new DirectoryEntry(“LDAP://OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local”) DirectorySearcher ds = new DirectorySearcher(root); ds.Filter = “(objectCategory=group)”; SearchResultCollection results = ds.FindAll(); 有人有想法吗? 谢谢!

使用NEST Field Boosting进行弹性搜索

我使用NEST强类型客户端在C#中使用弹性搜索。 我有一个包含条目的索引: [ElasticType(Name = “Entry”, IdProperty = “Id”)] public class Entry { public string Id { get; set; } public string Title { get; set; } public string Description { get; set; } public string Award { get; set; } public int Year { get; set; } } 如果年份是参赛年份,例如2012年,奖励是参赛作品获奖的类型,可以为空。 然后我想使用boost来搜索这些条目以获得不同的属性。 在下面的代码中,我希望结果在Title上的排名高于在Description上匹配的结果。 private IQueryResponse GetMatchedEntries(string searchText) […]

使用System.Web.Script.Serialization.JavascriptSerializer反序列化JSON – 如何?

注意:我发布了一个类似的问题 ,这是这个问题的祖先,因为我最初考虑使用JSON.NET来解析JSON,但我正在使用内置的反序列化器,所以这是一个不同的问题。 这就是我要做的事情:例如,我有一个名为Item的类。 json有许多“元素”(如果它们被称为 – 它们模仿Item类),每个元素包含3个字段:一个名为id的整数,一个名为name的字符串和一个名为creationTime的日期时间。 我想将所有这些Item“元素”从json解析为Item对象列表。 我在Item类中创建了3个字段以匹配JSON。 这就是我目前正在做的事情: JavaScriptSerializer ser = new JavaScriptSerializer(); List items = ser.Deserialize(new StreamReader(response.GetResponseStream()).ReadToEnd()); 但是,这不起作用,因为我“不能隐式地将类型’superapi.Item’转换为’System.Collections.Generic.List <superapi.Item >’”。 因此,我不知道如何处理这个问题,因为JSON中的Item架构有许多元素。 是否有可能在foreach循环中执行此操作,在JSON中查找每个反序列化的项,将其添加到列表中,并继续循环? 我将尝试使用一些类似的代码来做这件事,我将发布我的结果。 谢谢! 更新:这是一些JSON的样子: [{ “Id”: 1, “Name”: “First item name”, “creationTime”: “\/Date(1247258293690)\/” }, { “Id”: 2, “Name”: “Second item name”, “creationTime”: “\/Date(1247088323430)\/” }] 这是我的Item类的样子: public class Item { public int Id […]