我正在研究 .NET 6,并希望构建一个简单的控制台应用程序,并进行一些依赖项注入。
据我所知,为了使启动(现在只是程序)文件更具可读性,已经做了很多工作。让我有点困惑的是,所有改进似乎都是针对 API 项目中使用的 WebApplication.CreateBuilderpart 进行的,而不是 Host.CreateDefaultBuilder。正如本博客中提到的
微软自己的文档,似乎也只提到了WebApplication。
对我来说,WebApplication 似乎仅适用于 Web 项目,例如 API,并且我找不到任何可以证实 og 揭穿这一点的内容。
可以在控制台应用程序中使用 WebApplication,还是应该依赖 Host,并保留堆叠的 lambda 表达式?
我创建了一个Windows窗体解决方案,并在我调用的类的构造函数中
Console.WriteLine("constructer called")
但我只得到表单而不是控制台..所以输出在哪里?
在调试控制台应用程序时,是否可以将Visual Studio设置为使用非标准控制台?
我不确定默认控制台是什么,它看起来就像cmd.exe.当我调试时,我真的很喜欢我的控制台应用程序在ConEmu中运行.
为了清楚起见,我想点击"开始调试",这个过程应该像往常一样发生,但是不cmd.exe应该打开一个控制台,它应该调出一个ConEmu控制台(或其他).
我正在使用Visual Studio 2010 Pro
与此(未答复)问题密切相关:使用Console2进行Visual Studio调试?
我有一个自托管的.NET Core Console应用程序.
Web显示ASP.NET Core的示例,但我没有Web服务器.只是一个简单的命令行应用程序
是否可以为控制台应用程序执行此类操作?
public static void Main(string[] args)
{
// I don't want a WebHostBuilder. Just a command line
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
Run Code Online (Sandbox Code Playgroud)
我想在ASP.NET Core中使用Startup.cs,但是在控制台上.
怎么样?
我想学习是否有另一种(更快的)方法使用C#.net将文本输出到控制台应用程序窗口,而不是使用简单的Write,BackgroundColor和ForegroundColor方法和属性?我了解到每个单元格都有背景颜色和前景色,我想比使用上面提到的方法更快地缓存/缓冲/写入.
也许使用Out缓冲区有一些帮助,但我不知道如何将颜色编码到流中,如果这是颜色数据所在的位置.
这是一个基于retrostyle文本的游戏,我想要实现,我使用标准颜色和ascii字符来布局游戏.
请帮忙 :)
更新:
Out和缓冲区可能不是我需要弄乱的东西.似乎有一个控制台拥有的屏幕缓冲区.我不知道如何访问它,也许我只是运气不好,除非我导入一些dll.
我正在构建一个简单的 .NET Core 控制台应用程序,它将从命令行读取基本选项,然后执行并终止,无需用户交互。我想利用 DI,这样我就可以使用 .NET Core 通用主机。
我发现构建控制台应用程序的所有示例都会创建一个实现 IHostedService 或扩展 BackgroundService 的类。然后,该类通过 AddHostedService 添加到服务容器,并通过 StartAsync 或 ExecuteAsync 启动应用程序的工作。然而,似乎在所有这些示例中,它们都在实现后台服务或一些其他应用程序,这些应用程序在循环中运行或等待请求,直到被操作系统关闭或收到一些终止请求。如果我只想要一个启动、执行其操作然后退出的应用程序怎么办?例如:
程序.cs:
namespace MyApp
{
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
public static class Program
{
public static async Task Main(string[] args)
{
await CreateHostBuilder(args).RunConsoleAsync();
}
private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseConsoleLifetime()
.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Warning))
.ConfigureServices((hostContext, services) =>
{
services.Configure<MyServiceOptions>(hostContext.Configuration);
services.AddHostedService<MyService>();
services.AddSingleton(Console.Out);
});
}
}
Run Code Online (Sandbox Code Playgroud)
MyServiceOptions.cs:
namespace MyApp
{
public class MyServiceOptions
{
public int OpCode …Run Code Online (Sandbox Code Playgroud) 如何计算所有子目录中所有文件的所有行wc?
cd mydir
wc -l *
..
11723 total
Run Code Online (Sandbox Code Playgroud)
man wc建议wc -l --files0-from=-,但我不知道如何生成所有文件的列表NUL-terminated names
find . -print | wc -l --files0-from=-
Run Code Online (Sandbox Code Playgroud)
不工作.
有没有办法从控制台删除最后一个字符,即
Console.WriteLine("List: apple,pear,");
// Somehow delete the last ',' character from the console.
Console.WriteLine(".");
// Now the console contains "List: apple,pear."
Run Code Online (Sandbox Code Playgroud)
当然,我可以先创建一个字符串,然后将其打印到控制台,但我只是想知道是否可以直接从控制台删除字符.
如何从控制台输入掩码密码?我正在使用Java 6.
我尝试过使用console.readPassword(),但它不起作用.一个完整的例子可能对我有帮助.
这是我的代码:
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args)
{
Console console = System.console();
console.printf("Please enter your username: ");
String username = console.readLine();
console.printf(username + "\n");
console.printf("Please enter your password: ");
char[] passwordChars = console.readPassword();
String passwordString = new String(passwordChars);
console.printf(passwordString + "\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个NullPointerException ...
我正在用Java和gradle编写一个控制台应用程序.我正在使用该application插件并正确配置了必填字段build.gradle.
在我的主要课程中,我已经BufferedReader与之相关联System.in.这是问题所在:当我gradle run在项目目录中运行时,阅读器不会等待我的控制台输入.BufferedReader#readLine而是null在第一次通话时返回.对于我正在做的事情,这种行为是不可取的.
解决办法是什么?是否有一个单独的控制台应用程序插件用于gradle或我是否需要以application某种方式调整插件以满足我的需求?