ASP.NET Core中的services.AddTransient,service.AddScoped和service.AddSingleton方法有什么区别?

我想在Asp.Net Core中实现dependency injection 。 因此,在将此代码添加到ConfigureServices方法之后,两种方式都有效。 services.AddTransient和service.AddScope方法之间有什么区别是Asp.Net Core? public void ConfigureServices(IServiceCollection services) { // Add framework services. // Add application services. services.AddTransient(); services.AddScoped(); }

从XML读取数据

我打算将XML用于数据库目的。 我唯一能做的就是读取整个XML文件。 我希望能够只读取一些数据而且我不知道该怎么做。 这是一个简单的XML Animals J. Anderson Car L. Sawer 我对应用程序的输出感兴趣 Books: Animals Cars Authors: J. Anderson L. Sawer 我只想学习如何从XML读取特定数据而不是整个文件。 [已解决]我已将Linq用于XML

重试HttpClient不成功的请求

我正在构建一个给出HttpContent对象的函数,它将发出请求并在失败时重试。 但是我得到exception,说HttpContent对象在发出请求后被处理掉。 无论如何都要复制或复制HttpContent对象,以便我可以发出多个请求。 public HttpResponseMessage ExecuteWithRetry(string url, HttpContent content) { HttpResponseMessage result = null; bool success = false; do { using (var client = new HttpClient()) { result = client.PostAsync(url, content).Result; success = result.IsSuccessStatusCode; } } while (!success); return result; } // Works with no exception if first request is successful ExecuteWithRetry(“http://www.requestb.in/xfxcva” /*valid url*/, new […]

Console.ReadKey()与multithreading的奇怪行为

在multithreading程序中使用Console.ReadKey()时,我遇到了一个奇怪的问题。 我的问题是:为什么会这样? 这是一个错误,还是因为我滥用Console ? (请注意, 根据文档 ,控制台应该是线程安全的 。) 用代码解释这个是最容易的: using System; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication2 { internal class Program { private static void Main(string[] args) { Console.WriteLine(“X”); // Also try with this line commented out. Task.Factory.StartNew(test); Console.ReadKey(); } private static void test() { Console.WriteLine(“Entering the test() function.”); Thread.Sleep(1000); Console.WriteLine(“Exiting the test() function.”); } […]

HRESULT:Worksheet.range上的0x800A03EC

我在Worksheet.range方法上获得了HRESULT:0x800A03EC。 行数超过70K。 Office 2007。 码: Microsoft.Office.Interop.Excel.Range neededRange = currentWS.Range[cell.Cells[1, 1], cell.Cells[nRowCount, nColumnCount]]; 这里我的行数超过65530。 打破这个function。 我观察到它只在行数超过65530时才会中断。

将事件传递给ViewModel的最佳方法是什么?

案例是:我有一个控件的事件,我希望我的ViewModel作出反应。 目前我正在通过执行隐藏按钮的命令来执行此操作,如下例所示。 在View.xaml中: 在View.xaml.cs中: private void SearchResultRefreshed(object sender, EventArgs e) { if (SearchResultRefreshedButton.Command != null) { SearchResultRefreshedButton.Command.Execute(SearchResultGrid.ResultRowCount); } } 这很好用,但对我来说看起来像是一个黑客。 我想知道是否有更好的(标准)方式这样做? 我找不到任何例子,这就是我自己“发明”的东西。

使用文件系统目录结构填充TreeView

我是新的节点在这里.. :)我想出了这个算法,但它只显示父节点列表..像这样.. a a.txt b c c m n b o p etc… 我希望下一个节点将被放入上一个节点内的一个节点..所以它会像这样出现.. a a.txt b o p c m n etc… 我有一些想法,但我可以实现它代码.. :)任何帮助请.. private void ListDirectory(TreeView treeView, String path) { Stack stack = new Stack(); TreeNode DirFilesCollection = new TreeNode(); stack.Push(path); while (stack.Count > 0) { string dir = stack.Pop(); try { List […]

尝试将DateTime.Now插入日期/时间字段会出现“数据类型不匹配”错误

如果我尝试将日期时间写入MS-Access数据库中的记录,就像这样简单 cmd.CommandText = “INSERT INTO [table] ([date]) VALUES (?)”; cmd.Parameters.AddWithValue(“?”, DateTime.Now); 我得到一个例外,说“标准表达式中的数据类型不匹配”。 谁能告诉我为什么? 这里出了什么问题? 经过一些实验,我发现如果我写作,我可以使它工作 OleDbParameter parm = new OleDbParameter(“?”, OleDbType.Date); parm.Value = DateTime.Now; cmd.Parameters.Add(parm); 但这样做似乎不那么整洁,不那么直白。 为什么这有必要? 我忽略了简单的事情吗?

无法通过脚本更改GameObject颜色?

我有一个用于UI的canvas,其图像与canvas大小相同。 Image的rgba为0,0,0,0 ,使其不可见(因为a为0)。 我希望从脚本中将图像淡入黑色。 这是我正在使用的代码: public class NavigationC : MonoBehaviour { public Image screen; float fadeTime = 3f; Color colorToFadeTo; void StartGame() { colorToFadeTo = new Color(0f, 0f, 0f, 255f); screen.CrossFadeColor(colorToFadeTo, fadeTime, true, true); } } 现在,这在执行时没有做任何事情。 但是当我以单位手动更改图像的值以使图像变得可见时,我可以看到脚本改变了图像的颜色。 因此脚本确实有效,它只是不可见,因为脚本没有更改a值。 那么如何让图像从隐形变为黑色呢?

创建单实例WPF应用程序的正确方法是什么?

在.NET(而不是Windows窗体或控制台)下使用C#和WPF,创建只能作为单个实例运行的应用程序的正确方法是什么? 我知道它与一些叫做互斥的神话故事有关,我很少能找到一个不愿意停下来解释其中一个是什么的人。 代码还需要通知已经运行的实例用户尝试启动第二个,并且如果存在任何命令行参数,也可以传递。