与Array.toString()

如果我有一个数组并执行ToString那么只是将数组值串在一个长逗号分隔的字符串中,或​​者在数组中是不可能的?

从C#调用c函数

作为一个简单的例子,我有一个C函数接收一个int,递增它并返回递增的值。另一方面我在C#中输入文本框的输入数字。 我如何调用C函数来处理数字并从c#返回?感谢提前

Json.NET不区分大小写的属性反序列化

Json.NET将“不区分大小写的属性反序列化”列为广告function之一。 我已经读过,将首先尝试匹配指定属性的大小写,如果未找到匹配项,则执行不区分大小写的搜索。 但这似乎不是默认行为。 请参阅以下示例: var result = JsonConvert.DeserializeObject<KeyValuePair>( “{key: 123, value: \”test value\”}” ); // result is equal to: default(KeyValuePair) 如果更改JSON字符串以匹配属性的情况(“Key”和“Value”vs“key”和“value”),那么一切都很好: var result = JsonConvert.DeserializeObject<KeyValuePair>( “{Key: 123, Value: \”test value\”}” ); // result is equal to: new KeyValuePair(123, “test value”) 有没有办法执行不区分大小写的反序列化?

以编程方式确定代码是否在IIS Express下运行

我不确定这是否可能,但我希望找到一条线索,以确定当前正在执行的代码是否在IIS Express下运行。 到目前为止,我的最佳逼近,这是令人难以置信的hackish,肯定会在某些时候失败/突破: bool IsExpress = Request.ServerVariables[“SERVER_SOFTWARE”] == “Microsoft-IIS/7.5” && Int32.Parse(Request.ServerVariables[“INSTANCE_ID”]) > 1000000000; 当然必须有更好的方法。 我对Application,Server和Request对象的检查似乎没有透露任何可能提供更好洞察力的内容。 也许我只需要看一些其他对象? 更新: 我真的很好奇,如果有办法检测到这一点 – 在这一点上它真的是学术性的,我没有迫切需要使用它。 原来的问题是。 但本着回应评论的精神,特别是我有兴趣回答本网站上另一个问题/答案的批评: 如何搜索服务器的MIME地图 。 批评是发布的答案不适用于IIS Express,只适用于传统的IIS实例。 IIS Express将MIME配置存储在applicationhost.config XML文件中,我想更新该答案,以便为IIS Express提供返回该信息的方法。 我当然可以添加一些从XML中获取适当值的代码(Yay for LINQ to XML!)但我真的想让它变得更聪明。 为了清楚起见,我不需要帮助解析该文件 – 只是尝试检测代码当前是否在IIS Express引擎中执行时更优雅。 更新2: IIS 8.0 Express Beta 本周发布 ,它进一步表明我的问题中的方法很脆弱并且会破坏。 虽然它不是针对特定版本的交易破坏者,但考虑到这一点并尝试确保代码至少与今天的已知版本一起使用会很好。

C#中的手动字符串拆分

在我的代码中,我试图操纵一个字符串: Some text – 04.09.1996 – 40-18 我想把它分成三个子串: Some text , 04.09.1996和40-18 。 当我使用带有连字符的Split方法作为分隔符时,返回值是一个包含四个字符串的数组: Some text , 04.09.1996和18 。 如何使此代码如上所述工作? 谢谢。

C#和Java DES加密值不相同

我试图在C#和Java中加密相同的数据。 如果数据超过7个字节,则Java和C#加密值不相同。 输入1: a java输出: FrOzOp / 2Io8 = C#输出: FrOzOp / 2Io8 = 输入2: abc j: H9A / ah18K7I = c#: H9A / ahl8K7I = 输入3: aaaaaaaa ( 问题 ) j: Gxl7e0aWPd7j6l7uIEuMxA == c#: Gxl7e0aWPd7sf1xR6hK4VQ == 这是C#和Java方法的实现。 C#代码: public String saltTxt = “12345678”; public String Encrypt(String txt) { byte[] data = Encrypt(Encoding.UTF8.GetBytes(txt)); DESCryptoServiceProvider alg […]

可以将DirectX表面绘制到WPF控件吗?

DirectX可用于绘制WPF控件上的一组点(或WPF可以使用的东西)。 我需要在WPF中实现一个控件,该控件应该以30 Hz的更新率绘制16k点,现在我的解决方案已经用完了。 这个想法来自这个问题的评论。 任何帮助将非常感激。

用C#w / out复制直接读取大型二进制文件

我正在寻找最有效/直接的方式来做这个简单的C / C ++操作: void ReadData(FILE *f, uint16 *buf, int startsamp, int nsamps) { fseek(f, startsamp*sizeof(uint16), SEEK_SET); fread(buf, sizeof(uint16), nsamps, f); } 在C#/。NET中。 (为了清晰起见,我忽略了返回值 – 生产代码会检查它们。)具体来说,我需要读取许多(可能是10到100的数百万)2字节(16位)“ushort”整数数据样本(固定格式) ,不需要解析)以二进制forms存储在磁盘文件中。 关于C方式的好处是它将样本直接读入“uint16 *”缓冲区,没有CPU参与,也没有复制。 是的,它可能是“不安全的”,因为它使用void *指针指向未知大小的缓冲区,但似乎应该有一个“安全”的.NET替代品。 在C#中实现这一目标的最佳方法是什么? 我环顾四周,并发现了一些提示(使用FieldOffset的“工会”,使用指针的“不安全”代码,编组),但似乎没有一个适用于这种情况,没有使用某种复制/转换。 我想避免使用BinaryReader.ReadUInt16(),因为这非常慢并且CPU密集。 在我的机器上,带有ReadUInt16()的for()循环与使用单个Read()直接读入byte []数组之间的速度差异大约是25倍。 使用非阻塞I / O(在等待磁盘I / O时重叠“有用”处理),该比率可能更高。 理想情况下,我想简单地“伪装”一个ushort []数组作为byte []数组,这样我就可以用Read()直接填充它,或者以某种方式让Read()直接填充ushort []数组: // DOES NOT WORK!! public void GetData(FileStream f, ushort [] […]

打包.NET应用程序,以便它可以在没有.NET的计算机上运行

我最近一直试图在没有安装.NET的计算机上部署C#应用程序。 我知道StackOverflow上有很多关于同一主题的问题。 以下是其中一些,其中我读了对所有人的回答: 使用.net应用程序部署打包.net框架 运行.net应用程序而不安装.net客户端配置文件? 在Windows XP中运行C#windows应用程序而不安装.NET Framework 所以对上述问题的所有回答都表明,如果没有特定的软件等,这是不可能的。提到的一个软件是Salamander .NET Linker 。 唯一的问题是,在Salamender处理完应用程序后,我似乎无法运行该应用程序。 我知道这本身是不可能的,因为它需要运行.NET虚拟机。 但是,在过去,我已经制作了Java应用程序,并且随之而来,我发布了整个JVM。 令人惊讶的是,他们仍然有效。 所以这不是上述问题的重复的原因是因为我的真正问题是: 我需要打包哪些.NET框架项? 如果我设法打包所有,将它们放在与我正在运行的应用程序相同的目录中允许应用程序运行? 我找到了一个解决方案, Microsoft .NET Redist Package 。 唯一的问题是它有自己的GUI。 除此之外,它将是一个完美的契合。 那么,谁能告诉我两件事之一: 是否有命令行.NET包,如果有,我在哪里下载它? 如果没有,或者这样做是不切实际的,那么我需要从.NET安装中复制哪些目录? 我知道这些文件和目录是系统特定的,我的.NET安装可能无法在您的计算机上运行,​​但如果C#像Java一样,那么这应该是可以实现的。 是吗? 大小不是限制,对我来说无论应用程序及其所有文件是否为1GB,或者只有1MB。 如果没有其他解决方案,我使用Dependency Walker来检查我的程序的所有依赖项。 如果我要打包它们中的大部分,理论上我的应用是否有效?

我在属性设置器中进入无限循环

public int Position { get { if (Session[“Position”] != null) { Position = Convert.ToInt32(Session[“Position”]); } else { Position = 5; } return Position; } set { Position = value; } } 我的程序调用get并进入if循环,然后无限运行到set代码中