用C#写我的第一个DSL,然后挂上func &Action

我正在努力编写我的第一个DSL用于工作中的简单工具。 我正在使用构建器模式来设置复杂的父对象,但我遇到了砖墙,用于构建父对象的子集合。 这是一个示例: 使用: var myMorningCoffee = Coffee.Make.WithCream().WithOuncesToServe(16); 关闭的样本(我认为这就是他们所谓的): var myMorningCoffee = Coffee.Make.WithCream().PourIn( x => { x.ShotOfExpresso.AtTemperature(100); x.ShotOfExpresso.AtTemperature(100).OfPremiumType(); } ).WithOuncesToServe(16); 示例类(没有子PourIn()方法,因为这是我想要弄清楚的。) public class Coffee { private bool _cream; public Coffee Make { get new Coffee(); } public Coffee WithCream() { _cream = true; return this; } public Coffee WithOuncesToServe(int ounces) { _ounces = ounces; return […]

在ASP.NET和C#中使用服务器端的JSON

我有一个在客户端使用JQuery的ASP.NET Web表单。 我有一个用户界面,它构建一个对象集合并将它们存储在JSON中。 完成客户端实现后,我需要在用户单击按钮时处理该信息。 单击此按钮时,我需要遍历该JSON集合并validation条目。 我的问题是,我不知道该怎么做。 // Client-Side Code var myCollection = { “data”: [ ] }; // Server-Side Code protected void myButton_Click(object sender, EventArgs e) { // Parse JSON } 集合中的每个项目都存储在“data”属性中。 如何在服务器端循环访问JSON集合? 我想过将JSON数据放在隐藏的HTML元素中,但这听起来不太好,我想到了一个很好的方法。 谢谢

如何编码和解码破碎的中文/ Unicode字符?

我试过谷歌搜索但无法找到下面这个文本属于哪个字符集: 具有éœé>»C”¢C”叶£ç½®ä¹<å½±åƒè¼¸å…¥è£ç½® 但是把并将该字符串保存到HTML文件中,我能够正确地查看中文字符: 具有静电产生装置之影像输入装置 所以我的问题是: 我可以使用哪些工具来检测此文本的字符集? 如何在C#中正确转换/编码/解码它们? 更新:为了完成,我已经更新了这个测试。 [TestMethod] public void TestMethod1() { string encodedText = “具有éœé›»ç”¢ç”Ÿè£ç½®ä¹‹å½±åƒè¼¸å…¥è£ç½®”; Encoding utf8 = new UTF8Encoding(); Encoding window1252 = Encoding.GetEncoding(“Windows-1252”); byte[] postBytes = window1252.GetBytes(encodedText); string decodedText = utf8.GetString(postBytes); string actualText = “具有靜電產生裝置之影像輸入裝置”; Assert.AreEqual(actualText, decodedText); } } 谢谢。

如何在大小,滚动和网格中对齐两个(或更多)图表

我有三个相同时期的信号(volgate,current和energy)。 我在两个图表上打印数据:一个是电压(蓝色)和电流(红色),另一个是能量(橙色)。 它们是两个不同的图形,但在实践中,它们共享相同的X轴。 我有两个光标与鼠标移动同步,它作为两个图形的一个光标,基于光标位置的工具提示显示三个信号的当前选择值(所有三个系列都具有IsXValueIndexed = true,interval = 1)。 如你所见,它们运作良好: 我有两个问题: 1)当我开始进行缩放时,它们在图表区域的GRID ALIGNMENT和SIZE中开始不同。 在使用“更改”事件始终注册最后一个点后,当用户释放鼠标左键时,“更改”事件将触发并执行以下操作:我根据源名称强制缩放相反的图形。 dlChart_SelectionRangeChange(object sender, CursorEventArgs e){ var source = sender as Chart; double sp = selection_point.getStartPoint(); double ep = selection_point.getEndPoint(); double tmp = 0; if (sp == ep) return; if (sp > ep) {// zoom contrario tmp = sp; sp = ep; ep = […]

System.Net.HttpWebResponse.GetResponseStream()在WebException中返回截断的主体

出于某些原因,我不了解对特定网站( https://learningnetwork.cisco.com/people/mrollins?view=profile )的请求会产生一个reqsponse对象,其响应流包含网站的主干版本。 流在65536字节之后结束,等于2 ^ 16字节。 我认为这是一个可疑的数字。 这些请求抱怨内部服务器错误,我对此表示赞同,因为我已经validation了webbrowsers能够理解这个响应,并且完整的html包含在服务器的响应中。 (使用提琴手 ) 我已经发现此前记录的问题,由于它在本说明中结束的简单原因,这是不能令人满意的: “我想我不得不希望错误不超过65536个字符……” 它确实如此。 解决方法很受欢迎,或者如果有人知道一个好的修复也很好。 using System; using System.IO; using System.Net; using System.Web.UI; namespace Example { public partial class _Default : Page { protected void Page_Load(object senderHidden, EventArgs eHidden) { //ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; var cookieContainer […]

是否可以通过.net应用程序以编程方式关闭“远程PC”?

我想知道,是否可以通过.net应用程序以编程方式关闭远程PC? 如果是的话,怎么样?

如何在使用XmlSerializer时添加换行符

我想知道如何在使用XmlSerializer时为每个元素添加换行符? 示例代码: XmlSerializer serializer = new XmlSerializer(typeof(xxx)); using (XmlWriter xmlWriter = XmlWriter.Create(“test.xml”) { serializer.Serialize(xmlWriter, xxx); }

将对象列表转换为json数组

我有一个包含电子邮件地址和状态数据成员的类对象列表。 我试图将这些转换为json,确保在数组上有“操作”字样。 这是我的class级: class MyClass { public string email {get; set; } public string status { get; set; } } 这是我目前的代码(不是构建): List data = new List(); data = MagicallyGetData(); string json = new { operations = new { JsonConvert.SerializeObject(data.Select(s => new { email_address = s.email, status = s.status })) } }; 这是我想要获得的JSON: { “operations”: [ […]

在.NET(C#)Web服务中原生地返回XML?

我意识到.NET中的SOAP webservices返回web方法返回的任何对象的XML表示,但是如果我想在XML中返回数据格式,那么存储它的最佳对象是什么? 我正在使用这个问题的答案来编写我的XML,这里是代码: XmlWriter writer = XmlWriter.Create(pathToOutput); writer.WriteStartDocument(); writer.WriteStartElement(“People”); writer.WriteStartElement(“Person”); writer.WriteAttributeString(“Name”, “Nick”); writer.WriteEndElement(); writer.WriteStartElement(“Person”); writer.WriteStartAttribute(“Name”); writer.WriteValue(“Nick”); writer.WriteEndAttribute(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); 现在我可以将此输出作为String返回到我的调用webmethod,但它显示为 XML HERE ,是否还有返回完整的xml? 请在您的答案中,举例说明如何将所述对象与XmlWriter或其他内部对象一起使用(如果您认为XmlWriter是一个糟糕的选择)。 System.Xml包(命名空间)有很多对象,但我无法发现关于如何一起使用对象或在什么情况下使用什么的正确文档。

带枚举的Interlocked.CompareExchange

我正在尝试使用此枚举的Interlocked.CompareExchange : public enum State { Idle, Running, //… } 以下代码无法编译,但这就是我想要做的: if (Interlocked.CompareExchange(ref state, State.Running, State.Idle) != State.Idle) { throw new InvalidOperationException(“Unable to run – not idle”); } 当然我可以使用int而不是枚举并使用属性: private int state = (int)State.Idle; public State { get { return (State)state; } } 然后将枚举转换为int: if (Interlocked.CompareExchange(ref state, (int)State.Running, (int)State.Idle) != (int)State.Idle) { throw new InvalidOperationException(“Unable […]