在LINQ中使用PropertyInfo对象查询集合

我有一个像这样的签名的方法 void RefreshMethod(IEnumerable lst, string propertyName) where T:class { Type type = typeof(T); PropertyInfo property = type.GetProperties().Single(u => u.Name == primaryKeyProperty); //query goes here } 现在我想查询该集合以获取其所有值 propertyName <0 在一个简单的场景中,它就像这样容易 lst.where(u=>u.ID<0) 但在这里我没有那个ID属性,但有相应的“PropertyInfo”对象。 我应该怎么做到这一点。 亲切的指导

如何在消息控制器之类的对话框之外访问Bot Framework ConversationData?

在我的机器人的对话框中,我在ConversationData中存储一个标志值,如下所示: context.ConversationData.SetValue(“SomeFlag”, true); 稍后, 在将消息分派到对话框之前 ,我需要在MessagesController中检查该标志。 根据上一个问题,我尝试通过StateClient检索ConversationData,如下所示: public async Task Post([FromBody] Activity incomingMessage) { StateClient stateClient = incomingMessage.GetStateClient(); BotData userData = await stateClient.BotState.GetConversationDataAsync(message.ChannelId, message.Conversation.Id); bool finishedQuote = userData.GetProperty(“SomeFlag”); //… // do conditional logic, then dispatch to a dialog as normal } 但是,在运行时, userData变量包含一个BotData对象,其中userData.Data为null,并且我无法通过GetProperty检索任何存储的标志。 我没有在相关文档中看到任何有助于阐明这个问题的内容 – 我可能在这里做错了什么? 有什么我误解的吗?

当引用存在时,无法找到类型或命名空间

我有一个wpf应用程序,我试图引用我创建的类库。 我添加了对.dll的引用我已经将using语句添加到我的文件中,而intellisense实际上看到了新的命名空间。 然后在我的代码中,我能够在添加的.dll中创建新的类对象。 intellisense看到所有方法ect..no问题,没有错误。 当我尝试构建我的wpf应用程序时,突然间我得到的类型或命名空间在我添加的dll上找不到错误。 然后,每当我尝试从该.dll创建对象时,我都会收到错误。 我没有得到正在发生的事情..为什么它在我构建之前工作,但是当我构建它时决定它不知道我在哪里推荐.dll? 此外,我已经去了我想要添加的类库,并确保它构建没有错误。

单击窗体边界时获取鼠标光标的位置

只需拖动鼠标就可以很容易地将光标的位置放在窗体的边界之外,当位置发生变化时,它会向窗体发送许多值,形成下面的代码行。 MessageBox.Show(Cursor.Position.ToString()); 但是当用户在表单边界旁边单击时,我需要获取鼠标位置。 不仅仅是hover鼠标。 我使用以下代码行来执行此操作: private void Form1_Deactivate(object sender, EventArgs e) { MessageBox.Show(Cursor.Position.ToString()); } 我放置了MessageBox.Show(Cursor.Position.ToString()); 进入表单停用事件。 当用户在表单外单击时,此事件肯定会发生。 但是当用户没有单击外部但是使用ALT + TAB组合键更改程序时,它也会发送错误的值。 实际上我必须从第一次点击的位置开始捕捉该区域的屏幕截图。 因此,当在表单外部单击时,我需要光标的位置。 喜欢:

用户控件的项目集合选项

如下图所示,对于ListView控件,您可以使用“属性”窗格添加项目。 如何为UserControl启用此类内容? 当我搜索Google时,我没有得到任何东西,但我可能没有使用正确的条款。 有人知道吗? 谢谢

C#中的零(-0)等于零(0)

C#中的零(-0)等于零(0)?

如何在XDocument中删除除root之外的节点的xmlns属性

情况 我正在使用XDocument尝试删除第一个内部节点上的xmlns=””属性: 所以我想要的结果是: 码 doc = XDocument.Load(XmlReader.Create(inStream)); XElement inner = doc.XPathSelectElement(“/*/*[1]”); if (inner != null) { inner.Attribute(“xmlns”).Remove(); } MemoryStream outStream = new MemoryStream(); XmlWriter writer = XmlWriter.Create(outStream); doc.Save(writer); // <— Exception occurs here 问题 在尝试保存文档时,我得到以下exception: 在同一个start元素标记内,前缀”不能从”重新定义为’ http://my.namespace ‘。 这甚至意味着什么,我该怎么做才能删除那个讨厌的xmlns=”” ? 笔记 我确实想保留根节点的命名空间 我只想删除特定的xmlns ,文档中不会有其他xmlns属性。 更新 我尝试过使用这个问题的答案启发的代码: inner = new XElement(inner.Name.LocalName, inner.Elements()); 调试时, xmlns属性已从中消失,但我得到了相同的exception。

如何在Windows窗体应用程序中迭代控件?

所以这是一个愚蠢的问题。 我已经在我编写的应用程序中的选项对话框中添加了一堆文本框。 它们被命名为textbox1 – textbox12。 有没有办法以编程方式访问名称? 我只想在for循环中迭代它们。 现在我正在单独访问每个人(不寒而栗!)。 我知道这是错误的方式。 什么是正确的方法? 什么是简单的方法? 谢谢

C#进程无法访问文件”’,因为它正由另一个进程使用

代码片段只是将字符串写入名为“all_results.txt”的文本文件中。 我在File.WriteAllText中实现了错误。 在网上搜索解决方案之后,我尝试使用FileStream和StreamWriter作为替代品。 问题仍然存在。 它给了我: IOException未处理:进程无法访问文件’C:\ Users \ MadDebater \ Desktop \ ConsoleTest1 \ ConsoleTest \ bin \ Debug \ all_results.txt’,因为它正由另一个进程使用。 奇怪的是,错误是随意发生的。 它可能是在第3次循环或第45次循环之前遇到错误。 我提供了该类的完整代码,以防问题比看上去更深。 我确定它与我的病毒扫描程序或其他任何东西无关。 try { using (FileStream stream = new FileStream(@”all_results.txt”, FileMode.Create)) // Exception here { using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine(result); writer.Dispose(); writer.Close(); } stream.Dispose(); stream.Close(); } } catch (IOException […]

StyleCop SA1124 DoNotUseRegions合理吗?

SA1124 DoNotUseRegions建议不要在任何地方使用该区域。 这真的合理吗? 我认为region是一种将相关代码组合在一起并使大类易于阅读的方法,例如,如果通过上下文菜单为vs2008中的类生成接口方法,则会自动插入一个区域。 我想在检查代码样式时删除此规则。 我可否知道你对这条规则的看法?