Tag: c#

如何正确表示空白字符

我想知道如何在C#中表示空白字符。 我找到了空字符串表示string.Empty 。 有什么类似的东西代表空白角色吗? 我想做这样的事情: test.ToLower().Split(string.Whitespace) //test.ToLower().Split(Char.Whitespace)

使用Reflection捕获方法状态

有没有办法使用.NETreflection来捕获所有参数/局部变量的值?

为什么TimeSpan和Guid Structs可以比较为null?

我注意到一些.NET结构可以与null进行比较。 例如: TimeSpan y = new TimeSpan(); if (y == null) return; 将编译得很好(与Guid结构相同)。 现在我知道stucts是值类型,并且上面的代码不应该编译,除非有一个operator ==的重载,它接受一个对象。 但是,据我所知,没有。 我用Reflector和MSDN上的文档查看了这个类。 他们两个确实实现了以下接口: IComparable, IComparable, IEquatable 但是,尝试使用相同的接口似乎没有帮助: struct XX : IComparable, IComparable, IEquatable { public int CompareTo(Object obj) { return 0; } public int CompareTo (XX other){ return 0; } public bool Equals (XX other){ return false; } public override […]

在.NET中加载Canon .CR2文件

我正在尝试使用C#处理Canon RAW .CR2文件。 我的代码如下: BitmapDecoder bmpDec = BitmapDecoder.Create(new Uri(origFile), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None); BitmapEncoder bmpEnc = new BmpBitmapEncoder(); bmpEnc.Frames.Add(bmpDec.Frames[0]); Stream ms = new MemoryStream(); bmpEnc.Save(ms); Image srcImage = Bitmap.FromStream(ms); 前几行似乎毫无障碍地运行,但线路 bmEnc.Save(ms); 只是挂起而没有完成,也没有提出任何例外。 有人有这个成功吗?

在ProtoBuf-net中序列化字典失败

(注意:字典,其中T是一些ProtoContract / ProtoMembered类工作正常。)这个问题只发生在我的类型对象上。 我试图序列化词典工作字典。 typeof(object)不起作用。 应该是? 我应该实现基于字符串的解决方案吗? 在这种情况下,对象将只是一个.net原语。 [Test] public void De_SerializeObjectDictionary2() { var d = new Dictionary(); d.Add(“abc”, 12); var ms = new MemoryStream(); var model = ProtoBuf.Meta.RuntimeTypeModel.Default; //model.AutoAddMissingTypes = true; //model.AutoCompile = true; //model.InferTagFromNameDefault = true; //model.Add(typeof (object), false); //model.Add(typeof(Int32), true); //model[typeof (object)].AddSubType(50, typeof (Int32)); model.Serialize(ms, d); Serializer.Serialize<Dictionary>(ms, d); // <— No serializer […]

C#/ .NET:检测程序是作为服务还是作为控制台应用程序运行

我有一个C#/ .NET程序,可以作为控制台应用程序和服务运行。 目前我给它一个命令行选项来启动作为控制台应用程序,但我想避免这种情况。 是否有可能以编程方式检测我的程序是否作为服务启动? 如果它是纯Win32,我可以尝试使用StartServiceCtrlDispatcher作为服务启动并返回到控制台,如果它返回ERROR_FAILED_SERVICE_CONTROLLER_CONNECT,但System.ServiceProcess.ServiceBase.Run()弹出errordialog如果它失败然后只返回没有发出错误信号到该计划。 有任何想法吗?

使用linq将数据添加到现有xml文件

我是.net初学者。 我需要向xml文件添加一些数据 xml文件是: — 1st level /* i dont want to create this because this exists */ — 2nd level Toothpaste Colgate 12 10 Toothpaste Pepsodent 20 12 我需要补充一下 productname –> Toothpaste brandname –> CloseUp quantity –> 16 price –> 15 到各自的标签。 我现在面临的问题是我需要深入两个级别才能写入各自的标签,我不知道该怎么做。 我尝试了下面的代码:( 不工作 ) XDocument doc = new XDocument( new XElement(“stock”, /* how […]

Json.net自定义枚举转换器

我目前正在使用Json.net在我的应用程序中使用json。 我使用的API为枚举发送了一个特定的字符串格式,例如: 对于类型为TemperatureType的枚举,值为fahrenheit, Celcius json值为: {“result”:[“TemperatureType_fahrenheit”,”TemperatureType_Celcius”]} 我想使用转换器直接管理它以获得IList但也适用于其他枚举类型。 有人有想法吗? 我尝试使用自定义JsonConverter: if (reader.TokenType == JsonToken.String && reader.Value != null) { string value = reader.Value.ToString(); var splitValues = value.Split(‘_’); if (splitValues.Length == 2) { var type = Type.GetType(splitValues[0]); return Enum.Parse(type, splitValues[1]); } } 问题是GetType属性,因为我没有指示所需类型和没有命名空间的参数

未知模块中发生未处理的“System.IO.FileNotFoundException”类型exception

我正在开发ac#应用程序,我在调试运行时遇到以下错误: 未知模块中发生未处理的“System.IO.FileNotFoundException”类型exception。 附加信息:无法加载文件或程序集“Autodesk.Navisworks.Timeliner.dll”或其依赖项之一。 指定的模块无法找到。 Autodesk.Navisworks.Timeliner.dll位于应用程序的debug文件夹中。 我修复了.net框架(版本4)但它没有解决它。 有关如何解决此问题的任何想法? 谢谢。

ASP.NET MVC中<%#和<%=有什么区别?

ASPX内联代码中的<%#和<%=有什么区别?