有时(经常)我在调试过程中收到消息Checking for any code updates
:
这使得生产率下降。我做了一些研究并在 Visual Studio 社区上找到了一篇文章: https: //developercommunity.visualstudio.com/t/visual-studio-gets-stuck-looking-for-code-changes/1521675 ?viewtype=solutions
但该帖子已被关闭Not Enough Info
。看来发布此内容的人不知道如何重现此内容。和我的情况一样。我不知道为什么会这样。有人有这个问题吗?怎么解决这个问题呢?它发生在 VS 2019 和 2022 年
2-3 周,虽然我没有更改漂亮文件中的任何内容,但 VSC 开始将单引号更改为双引号,而它始终是单引号。我尝试了很多选择,但它一直在改变它。这是我的 .prettierrc
{
"trailingComma": "es5",
"printWidth": 200,
"semi": true,
"singleQuote": true,
"jsxSingleQuote": true,
"tabWidth": 2,
"quoteProps": "as-needed"
}
Run Code Online (Sandbox Code Playgroud)
编辑:我认为,这是 .tsx 文件的问题,因为 prettier 只有 .jsx 文件的选项,但仍然没有找到解决方案。
我使用 ReactJs 每 5 秒抓取一个 RSS 新闻提要,将其转换为 JSON 字符串,以将其呈现在网页上。然而,我同时使用 useEffect 和 useState 钩子来实现此目的,因为我在 useState 钩子变量中传递 JSON 字符串。它有点有效,但会产生无限循环。我已经搜索了堆栈溢出中提供的修复程序,但找不到确切的问题。这是我的代码片段。
import React, {useEffect, useState} from 'react';
import Carousel from 'react-bootstrap/Carousel';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import {getNews} from "../../actions/news";
import Parser from 'rss-parser';
const NewsCarousel = ({getNews, news: {news, loading} }) => {
const [getFeed, setFeed] = useState({
feed: ''
});
useEffect(() => {
const interval = setInterval(() => {
getNews();
}, 5000);
return () => clearInterval(interval);
}, …
Run Code Online (Sandbox Code Playgroud) 我刚刚将 VS 2019 更新到 16.9.4 版本。有时我在重建解决方案时遇到三个错误:
无法复制文件 deps.json,因为找不到该文件。Microsoft.Common.CurrentVersion.targets 4919
无法复制文件runtimeconfig.json,因为它是 Microsoft.Common.CurrentVersion.targets 4919 无法复制文件runtimeconfig.dev.json,因为它是Microsoft.Common.CurrentVersion.targets 4919
当我进行清理和重建时,重建就会成功。当我在重建后再次尝试重建时,我收到这些错误。我在这里发现了几个相同的问题: .deps.json 无法找到 https://github.com/dotnet/efcore/issues/16386 我尝试了他们的 worarrounds 但它无法帮助我。有谁知道解决方案吗?我的项目在 .NET 5 中
我想在从客户端取消时取消加载实体。我有控制器,它看起来像这样:
public IHttpActionResult Get(CancellationToken cancellationToken)
{
IQueryable<Product> products = Context.GetEntities<Product>();
return Ok();
}
List<Product> GetInsTance(IQueryable<Product> products,CancellationToken cancellationToken)
{
var list = new List<Product>();
foreach (var item in products)
{
cancellationToken.ThrowIfCancellationRequested();
list.Add(item);
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
当它被取消时我抛出异常。所以,我想通过不同的方式取消。如果我设置IQuerable
为OK
方法怎么办?它会起作用吗?还有其他方法可以做到这一点吗?
如您所知,C# 7.0 添加了一些新功能,其中之一是本地函数。我查看了一些使用本地函数的示例和用例,发现了使用它们的两个原因:
1)隐藏函数或方法。原因是:如果该函数不是本地的,其他成员可能会无意中直接使用该函数
2) 使用“Parent”函数的变量
在重构代码的调试过程中,我找不到对 Visual Studio 中本地函数的引用。有对私有函数的引用:
当我调试或重构代码时它很有帮助。在本地函数中我找不到它们:
那么,第一个问题是为什么局部函数不显示摘要注释和参考文献?
有些程序员喜欢使用本地函数,但有些则不喜欢。下面是一个示例(来自C# 7.0 的新增功能 | .NET 博客):
public IEnumerable<T> Filter<T>(IEnumerable<T> source, Func<T, bool> filter)
{
if (source == null) throw new ArgumentNullException(nameof(source));
if (filter == null) throw new ArgumentNullException(nameof(filter));
return Iterator();
IEnumerable<T> Iterator()
{
foreach (var element in source)
{
if (filter(element)) { yield return element; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,使用本地函数的原因是:
如果Iterator
它是 旁边的私有方法Filter
,则其他成员可能会意外地直接使用它(无需参数检查)。此外,它需要采用所有相同的参数,而Filter
不是让它们只在范围内
第二个问题是为什么我们要使用局部函数?在这种情况下,我们可以删除本地方法,因为它只使用一次。如果我们担心代码大小或代码责任,我们可以使用区域:
public IEnumerable<T> Filter<T>(IEnumerable<T> …
Run Code Online (Sandbox Code Playgroud) 我有三个班级:
public class Person
{
public string Name { get; set; }
public Guid Guid { get; set; }
}
public class Student : Person
{
public string DOB { get; set; }
}
public class Teacher : Person
{
}
Run Code Online (Sandbox Code Playgroud)
我想根据需要制作字符串 DOB,我正在这样做:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().HasKey(d => d.Guid);
modelBuilder.Entity<Student>().Property(d => d.DOB).IsRequired(true);
modelBuilder.Entity<Teacher>();
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)
在 SQL EF Core 中生成可为空的列:
它允许在 DOB 为空时保存数据:
MainContext mainContext = new MainContext();
mainContext.Add(new Student() { DOB = null });
mainContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但是,它在没有继承的情况下工作。这是 …
“Phantom Folder”的定义: 术语“Thunderbird Phantom Folder”似乎是一个标准的表达方式(你会在谷歌中找到数百个点击——非常奇怪的是,目前还没有 StackOverflow 条目)。它是指以灰色和斜体字体显示的文件夹,除了可能的子文件夹外,它们不包含邮件。虚拟文件夹无法删除。最重要的是:它们不存在!这就是为什么它们被称为“幻影”的原因,因为尽管它们不是真实的,但 Thunderbird 会显示它们。
一些技术说明: 我在 Ubuntu Linux 下使用 Thunderbird 68.2.1(64 位)。如果有意义,我的 IMAP 邮件帐户由“outlook”运行?(我不是管理员...)我在另一台 Windows 计算机上也有一个 Outlook 电子邮件客户端,但是在我遇到或尝试解决这些问题以防止出现任何副作用时它被关闭了。所描述的问题都没有出现在“在线”(在 Outlook Web 邮件程序中)或 Outlook 邮件客户端中,它们都只出现在 Thunderbird 中。
标准问题: 嗯,问题只是幻像文件夹的“存在”,即,尽管它们在服务器上不存在,但它们会显示出来。(我假设是一个 IMAP 服务器。)也就是说,每个人都有的问题是如何让 Thunderbird 理解它们不是真实的,从而使其删除它们。
解决方案: 互联网上实际上充斥着数十或数百个帖子,它们基本上都是一样的(我想我几乎都阅读了它们^^)。所以请谷歌搜索“Thunderbird Phantom Folder”。无论如何,这里有一个简短的重复你应该做的事情,但请不要指望细节,只是谷歌。
从我读过的所有内容来看,这似乎对几乎所有人都有效。但...
我的(非标准?)问题:
[1] 简而言之,我的问题是在我的问题上无数的谷歌点击根本无法在我的系统上运行。最重要的是:所有这些解决方案似乎都表明这是我本地Thunderbird 安装的本地问题。经过几天(失败)的指示后,我开始质疑这个前提。所以我在新的 PC 上安装了 Thunderbird 并添加了我的邮件帐户。它下载了幻影文件夹!所以这证明这不是本地问题!Thunderbird 一定在某处上传了(有缺陷的)文件夹列表,这可能是删除所有本地 Thunderbird 文件没有按预期工作的原因。随后的研究表明我的问题与订阅文件夹列表有关(稍后更多)。
[2] 此外,这对我来说非常(!)烦人,每当我重命名文件夹时,Thunderbird 都会创建一个幻影。^^ 因此,如果我创建“testfolder-1”并将其重命名为“testfolder-2”,那么我两者都有,其中“folder-1”是我无法删除的幻影。这种行为也适用于幻影本身。因此,假设我将幻影重命名为“testfolder-1new”,然后我得到了一个具有该名称的新幻影,而旧幻影“testfolder-1”仍然是幻影。
解决问题的详细信息/提示: 如上所述,我认为问题可能与订阅文件夹列表有关。但是,这并没有真正帮助我,因为在订阅菜单中您只能选中或取消选中文件夹名称,但我不只是不想看到它们,我希望问题得到解决。那就是:应该有可能的是,我可以用幻像文件夹消除那些错误的行,而不仅仅是检查/取消选中相应的条目(但这无论如何都是不可能的,因为幻像行旁边没有复选框)。像“重新计算订阅的文件夹列表”这样的选项可以解决我认为的问题,但这并不存在。而且,如上所述,删除所有本地文件然后重新启动 Thunderbird 无济于事,因此它可能只会再次下载有缺陷的订阅文件。我还想指出,帐户设置中有一个选项,说明“仅显示订阅的文件夹”。如果取消选中此项,将显示服务器上的所有文件夹。不出所料,幻影消失了(这实际上是我认为问题是由订阅列表引起的原因)。但是,显然我不想看到所有几十个无用的 IMAP 文件夹,我真的只想看到订阅的文件夹。但是如果我切换回来,即再次启用该选项,那么可悲的是幻影会重新出现。显然我不想看到所有几十个无用的 IMAP …
我想从设置的 URL 中解析所有 URL。我找到了以下方法:
public static List<string> ParseLinks(string urlToCrawl)
{
WebClient webClient = new WebClient();
byte[] data = webClient.DownloadData(urlToCrawl);
string download = Encoding.ASCII.GetString(data);
HashSet<string> list = new HashSet<string>();
var doc = new HtmlDocument();
doc.LoadHtml(download);
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (var n in nodes)
{
string href = n.Attributes["href"].Value;
list.Add(GetAbsoluteUrlString(urlToCrawl, href));
}
return list.ToList();
}
static string GetAbsoluteUrlString(string baseUrl, string url)
{
var uri = new Uri(url, UriKind.RelativeOrAbsolute);
if (!uri.IsAbsoluteUri)
uri = new Uri(new Uri(baseUrl), uri);
return uri.ToString();
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但在某些网站中,链接通过他们的网站(他们正在重定向)。我有一个链接:https://www.houzz.com/trk/aHR0cHM6Ly9nb2xkbWFuYXJjaGl0ZWN0LmNvbS8/d76eaa05cc284c9f987d1d30948a6295/ue/MjgxNzk3OTg/84045ba5f6a5f8aa2c25d89b4e18 …
我有搜索服务,它将为我提供具有正确顺序的实体的指南列表。例如,我的搜索服务给了我这个结果:
// Assuming you have a list of Guids named 'guidList'
List<Guid> guidList = new List<Guid>
{
Guid.NewGuid(),
Guid.NewGuid(),
Guid.NewGuid()
};
Run Code Online (Sandbox Code Playgroud)
现在,我需要对数据库进行查询以获取这些实体:
using (var context = new YourDbContext())
{
var students = context.Students
.Where(e => guidList.Contains(e.Guid));
}
Run Code Online (Sandbox Code Playgroud)
我想以与 guidList 相同的顺序获取我的实体。执行 AsEnumerable 在这里不起作用,因为我将在最后添加另一个查询,这可能会影响性能
我有一个 WPF 应用程序。我正在启动一些线程。当我关闭应用程序时,它仍在后台运行(我从任务管理器中看到),因为线程仍在运行。我想在应用程序关闭时杀死所有线程。这是代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
Thread thread;
private void Button_Click(object sender, RoutedEventArgs e)
{
thread = new Thread(new ParameterizedThreadStart(abc));
thread.Start();
}
private void abc(object obj)
{
Thread.Sleep(10000);
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当我单击按钮并关闭应用程序时,它仍会在后台运行 10 秒。如何杀死正在关闭的应用程序上的所有线程?
c# ×6
reactjs ×2
.net ×1
ef-core-3.1 ×1
href ×1
json ×1
linq ×1
odata ×1
parsing ×1
prettier ×1
react-hooks ×1
redirect ×1
sql-server ×1
thunderbird ×1
typescript ×1
visual-studio-2017-build-tools ×1
wpf ×1