Tag: C#的

如何在C#中将string转换为UTF-8?

我有一个string,我从第三方应用程序接收,我想在我的Windows Surface上使用C#在任何语言正确显示它。 由于编码不正确,我的一段string看起来像西class牙文: Acción 而应该看起来像这样: 行动组织 根据这个问题的答案: 如何知道在C#中的string编码,我收到的编码应该已经在UTF-8,但它是在Encoding.Default(可能ANSI?)上读取。 我试图将这个string转换为真正的UTF-8,但其中一个问题是我只能看到Encoding类的一个子集(仅限于UTF8和Unicode属性),可能是因为我仅限于Windows Surface API。 我已经尝试了一些我在互联网上find的片段,但是迄今为止,没有一个片段certificate对于东方语言(即韩国)是成功的。 一个例子如下: var utf8 = Encoding.UTF8; byte[] utfBytes = utf8.GetBytes(myString); myString= utf8.GetString(utfBytes, 0, utfBytes.Length); 我也尝试将string解压缩到一个字节数组,然后使用UTF8.GetString: byte[] myByteArray = new byte[myString.Length]; for (int ix = 0; ix < myString.Length; ++ix) { char ch = myString[ix]; myByteArray[ix] = (byte) ch; } myString = Encoding.UTF8.GetString(myByteArray, 0, myString.Length); […]

捕捉“超出最大请求长度”

我正在编写一个上传函数,并且在web.config(最大大小设置为5120)中的httpRuntime中具有大于指定最大大小的文件时,遇到捕获“System.Web.HttpException:超出最大请求长度”的问题。 我正在使用一个简单的<input>的文件。 问题是在上传button的点击事件之前抛出exception,并且在我的代码运行之前发生exception。 那么如何捕捉和处理exception呢? 编辑:exception即时抛出,所以我很确定这不是一个超时问题,由于连接速度慢。

您使用的是什么ReSharper 4 + C#生活模板?

C#使用什么ReSharper 4.0模板? 我们以下面的格式分享这些内容: [标题] 可选说明 快捷方式:快捷方式 可用于: [AvailabilitySetting] // Resharper template code snippet // comes here macros属性 (如果存在): Macro1 – Value – EditableOccurence Macro2 – Value – EditableOccurence 每个答案一个macros,请! 下面是一些NUnittesting夹具和独立NUnittesting用例的示例 ,它们以build议的格式描述了实时模板。

如何使用DbContext和SetInitializer修复datetime2超出范围的转换错误?

我正在使用entity framework4.1中引入的DbContext和Code First API。 数据模型使用基本数据types,如string和DateTime 。 我在某些情况下使用的唯一数据注释是[Required] ,但这不在任何DateTime属性中。 例: public virtual DateTime Start { get; set; } DbContext子类也很简单,如下所示: public class EventsContext : DbContext { public DbSet<Event> Events { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Event>().ToTable("Events"); } } 初始化程序将模型中的date设置为今年或明年的明智值。 但是,当我运行初始化,我得到这个错误在context.SaveChanges() : 将datetime2数据types转换为date时间数据types会导致超出范围的值。 该语句已终止。 我不明白为什么会发生这种情况,因为一切都很简单。 我也不知道如何解决这个问题,因为没有edmx文件来编辑。 有任何想法吗?

如何发送HTML格式的电子邮件?

我可以让Web应用程序使用Windows任务计划程序发送自动电子邮件。 现在我想发送HTML格式的电子邮件使用以下方法,我写了发送电子邮件。 我的代码隐藏: protected void Page_Load(object sender, EventArgs e) { SmtpClient sc = new SmtpClient("mail address"); MailMessage msg = null; try { msg = new MailMessage("xxxx@gmail.com", "yyyy@gmail.com", "Message from PSSP System", "This email sent by the PSSP system"); sc.Send(msg); } catch (Exception ex) { throw ex; } finally { if (msg != null) { msg.Dispose(); […]

有没有更安全的方式添加一个项目到Dictionary <>?

我需要添加键/对象对字典,但我当然需要先检查是否已经存在的密钥,否则我得到一个“ 密钥已经存在字典 ”的错误。 下面的代码解决了这个问题,但是笨重。 没有像这样做一个string帮助器方法是什么更优雅的方式呢? using System; using System.Collections.Generic; namespace TestDictStringObject { class Program { static void Main(string[] args) { Dictionary<string, object> currentViews = new Dictionary<string, object>(); StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view1"); StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view2"); StringHelpers.SafeDictionaryAdd(currentViews, "Employees", "view1"); StringHelpers.SafeDictionaryAdd(currentViews, "Reports", "view1"); foreach (KeyValuePair<string, object> pair in currentViews) { Console.WriteLine("{0} {1}", pair.Key, pair.Value); } Console.ReadLine(); } } public […]

为什么要避免铸造?

我通常尽可能地避免使用types,因为我认为这是糟糕的编码习惯,可能会导致性能损失。 但是如果有人问我解释为什么这样,我可能会把他们看成是头灯上的一只鹿。 那么,为什么/何时投射不好呢? 是通用的Java,C#,C + +或每个不同的运行时环境处理它自己的条款? 欢迎任何语言的具体细节,例如为什么它在C + +不好?

获取列表中不同值的列表

在C#中,假设我有一个名为Note的类,它带有三个String成员variables。 public class Note { public string Title; public string Author; public string Text; } 我有一个types的列表注意: List<Note> Notes = new List<Note>(); 在“作者”列中获得所有不同值的列表的最干净的方法是什么? 我可以遍历列表并将所有不重复的值添加到另一个string列表中,但是这看起来很脏并且效率低下。 我有一种感觉,有一些神奇的Linqbuild筑可以做到这一点,但我一直没有能够拿出任何东西。

如何在unit testing中比较列表

这个testing如何失败? [TestMethod] public void Get_Code() { var expected = new List<int>(); expected.Add(100); expected.Add(400); expected.Add(200); expected.Add(900); expected.Add(2300); expected.Add(1900); var actual = new List<int>(); actual.Add(100); actual.Add(400); actual.Add(200); actual.Add(900); actual.Add(2300); actual.Add(1900); Assert.AreEqual(expected, actual); //AreSame(expected, actual) and IsTrue(expected.Equals(actual)) fails too }

在c#中创build时间戳的函数

我想知道,有没有办法在date时间在c#中创build一个时间戳? 我需要一个毫秒的精度值,也可以在Compact Framework中工作(因为DateTime.ToBinary()不存在于CF中)。 我的问题是,我想存储在数据库不可知的方式这个值,所以我可以稍后sorting,并找出哪个值是从另一个更大等