从最后(或可能是最后两次)更新,我无法在Nuget中更新软件包NETStandartLibrary.我只是创建一个新的标准库项目.看到这条消息:
在项目的属性中,版本是不同的:
在.csproj中:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
在Nuget中,我添加了依赖项'Microsoft.EntityFrameworkCore',然后我收到了警告:
警告检测到的包降级:NETStandard.Library从1.6.1到1.6.0 AgainTest(> = 1.0.0) - > Microsoft.EntityFrameworkCore(> = 1.1.0) - > NETStandard.Library(> = 1.6.1)AgainTest( > = 1.0.0) - > NETStandard.Library(> = 1.6.0)
我在项目的属性中选择高版本,但警告继续.
我用ASP.NET Core MVC做了一些测试.我试图展示像çùé这样的特殊角色.
但它显示为 .
例如:
创建新视图并放置:
<div>àçù</div>
Run Code Online (Sandbox Code Playgroud)
默认情况下,.cshtml
文件以"UTF-16"编码.HTTP响应头中的字符集是"UTF-8".在_layout中,<head>
包含<meta charset="utf-8" />
标记.
要解决此问题,我可以将所有.cshtml文件转换为uft-8.
在ASP MVC Core中管理编码的正确方法是什么?
编辑:
Visual Studio 2017 RC在'utf-8'中创建.cshtml文件,但脚手架在'ISO 8851-1'中创建.cshtml文件.
我可以向脚手架解释我想要'UTF-8'中的.cshtml文件吗?
我是Android的初学者.
在Android中,一些通用元素可以在onSaveInstanceState
/中自动保存/恢复onRestoreInstanceState
.
例如,EditText
保存/恢复Text
属性,RatingBar
保存/恢复Rating
属性...
我从一些测试中看到,但我在文档中找不到任何相关内容.
如果没有我的干预,我怎么能知道隐含地保存/恢复了什么?
例如,我可以找到EditText.Text
自动保存/恢复的地方?
我特别不想测试所有属性.
从JRG回复编辑:
https://developer.android.com/guide/components/activities/activity-lifecycle.html
保存活动状态当您的活动开始停止时,系统将调用onSaveInstanceState()方法<...>此方法的默认实现保存有关活动视图层次结构状态的瞬态信息,例如EditText小部件中的文本或ListView小部件的滚动位置.
我怎么知道保存/恢复的默认实现是什么?
重读JRG后的第二次编辑回答:
默认情况下,系统使用Bundle实例状态来保存有关活动布局中每个View对象的信息(例如输入到EditText小部件中的文本值).
默认实现保存/恢复元素视图的所有状态.
在使用 VS 2022 预览版几次迭代后,我将其删除并在 VS 2022 Current 可用时安装了它。
现有 Blazor 托管应用程序不会在文件保存或按热重载按钮时热重载。它在预览版本中重新加载“良好”。无论我是否在调试的情况下运行它都没有关系。
使用新安装的版本创建的新应用程序会进行热重载。
我没有看到 *.csproj 或 launchSettings.json 文件有任何重要区别。他们都针对net6.0。我还删除了 .vs 目录并清理了解决方案。
唯一的区别是我的项目在新应用程序模板中使用 Program.cs 和 Startup.cs 而不是仅使用 Program.cs,但这并不重要。或者,是吗?
是什么阻止 Visual Studio 热重载现有应用程序?
更新
切换到单个 Program.cs 和 WebApplication 构建器确实有所帮助。现在热重载无需调试即可工作。通过调试,VS 表示它应用了更改,但它们并未应用在屏幕上。
我仍然想知道为什么需要进行此更改以及如何在调试时启用热重载?
blazor blazor-webassembly .net-6.0 visual-studio-2022 hosted-blazor-webassembly
当我的 ViewModel 的属性更新时,其他属性会异步更新。
Todo.cshtml:
@page "/todo"
<h1>Todo (@todos.Count(todo => !todo.IsDone))</h1>
<ul>
@foreach (var todo in todos)
{
<li>
<input type="checkbox" bind="@todo.IsDone" />
<input bind="@todo.Title" />
</li>
}
</ul>
<input placeholder="Something todo" bind="@newTodo"/>
<button onclick="@AddTodo">Add todo</button>
@functions {
IList<TodoItem> todos = new List<TodoItem>();
string newTodo;
void AddTodo()
{
if (!string.IsNullOrWhiteSpace(newTodo))
{
todos.Add(new TodoItem { Title = newTodo });
newTodo = string.Empty;
}
}
}
Run Code Online (Sandbox Code Playgroud)
TodoItem.cs:
public class TodoItem
{
private bool _isDone;
public string Title { get; set; }
public bool …
Run Code Online (Sandbox Code Playgroud) 我已经开始使用 Blazor/Electron 进行实验性应用。
我已经分叉了这个项目:https : //github.com/SteveSandersonMS/BlazorElectronExperiment.Sample
当应用程序关闭时,需要保存应用程序的状态。为此,我认为它需要处理关闭事件并在最终关闭之前保存应用程序的状态。
关闭事件如何处理?你有其他解决方案吗?
我创建了一个新的 .NET Core 2.1 控制台项目。我添加了 Config.xml:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="MyLocalSQLServer" connectionString="Initial Catalog=aspnetdb;data source=localhost;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在Program.cs中:
class Program
{
static void Main(string[] args)
{
Console.WriteLine(ConfigurationManager.ConnectionStrings["MyLocalSQLServer"]);
}
}
Run Code Online (Sandbox Code Playgroud)
使用aspnet_regiis
,我加密了配置文件:
RENAME "C:\repos\ConsoleApp7\bin\Debug\netcoreapp2.1\ConsoleApp.dll.config" web.config
aspnet_regiis -pef "connectionStrings" "C:\repos\ConsoleApp\bin\Debug\netcoreapp2.1"
RENAME "C:\repos\ConsoleApp7\bin\Debug\netcoreapp2.1\web.config" ConsoleApp.dll.config
Run Code Online (Sandbox Code Playgroud)
最后,我运行了该应用程序:
dotnet "C:\repos\ConsoleApp7\bin\Debug\netcoreapp2.1\ConsoleApp.dll"
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Unhandled Exception: System.Configuration.ConfigurationErrorsException:
Failed to decrypt using provider 'RsaProtectedConfigurationProvider'.
Error message from the provider: Operation is not supported on this platform.
---> System.PlatformNotSupportedException: Operation is not supported on this platform. …
Run Code Online (Sandbox Code Playgroud) 我尝试使用 Entity Framework Core 3.1 查询存储过程。我做了一个非常简单的测试项目。
存储过程:
ALTER PROCEDURE [dbo].[prcTest]
AS
BEGIN
SET NOCOUNT ON;
select tbl_Postalcode.PST_T_PostalCode AS Postalcode
from tbl_Postalcode
END
Run Code Online (Sandbox Code Playgroud)
实体:
public class Test
{
string Postalcode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我使用这个扩展方法,在 Stackoverflow 上找到,它稍微封装了整个事情。但没什么特别的:
ALTER PROCEDURE [dbo].[prcTest]
AS
BEGIN
SET NOCOUNT ON;
select tbl_Postalcode.PST_T_PostalCode AS Postalcode
from tbl_Postalcode
END
Run Code Online (Sandbox Code Playgroud)
然后我像这样执行查询:
var result = await _myContext.SqlQueryAsync<Test>("Exec prcTest");
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
AggregateException: One or more errors occurred. (Sequence contains no elements)
System.Threading.Tasks.Task.ThrowIfExceptional(bool includeTaskCanceledExceptions)
InvalidOperationException: Sequence contains no elements
System.Linq.ThrowHelper.ThrowNoElementsException()
System.Threading.Tasks.Task.ThrowIfExceptional(bool includeTaskCanceledExceptions) …
Run Code Online (Sandbox Code Playgroud) 使用此Blazor组件:
@page "/counter"
<h1>Counter</h1>
<p>Current count: @_a.CurrentCount</p>
<button class="btn btn-primary" onclick="@_b.IncrementCount">Click me</button>
@functions {
private readonly ClassA _a = new ClassA();
private readonly ClassB _b = new ClassB(_a);
class ClassA
{
public int CurrentCount { get; set; }
}
class ClassB
{
private readonly ClassA _classA;
public ClassB(ClassA classA)
{
_classA = classA;
}
public void IncrementCount() => _classA.CurrentCount++;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
错误CS0236字段初始值设定项无法引用非静态字段,方法或属性'__Counter._a'
此线程说明如何解决标准类中的此错误:
但是为此,它需要一个构造函数。
是否可以在Blazor组件中添加构造函数?
如何解决此错误?
我需要测试一个 api,其中:
接口地址 | http://api.mydomain.loc:20109/v1/ |
API定义网址 | http://api.mydomain.loc:20109/v1/swagger/swagger.json |
API 定义是:
{
"openapi": "3.0.1",
"info": {
"title": "***",
"description": "***",
"version": "v1"
},
"servers": [
{
"url": "/v1/path1/path2"
}
],
"/ressource1": {
"get": {
"responses": {
"200": {
"description": "Success"
}
}
}
},
...
}
Run Code Online (Sandbox Code Playgroud)
我按照文档中的 unpkg 部分启动本地 Swagger UI。我使用以下内容创建文件“swagger-ui.html”:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="SwaggerIU"
/>
<title>SwaggerUI</title>
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui.css" />
</head>
<body>
<div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script>
<script>
window.onload …
Run Code Online (Sandbox Code Playgroud) 我添加csproj以在C#8中启用Null引用类型:
<Nullable>enable</Nullable>
Run Code Online (Sandbox Code Playgroud)
此代码:
private static void Method()
{
var dictionary = new Dictionary<string, string>();
string value = string.Empty;
dictionary.TryGetValue("Key", out value);
}
Run Code Online (Sandbox Code Playgroud)
TryGetValue行带有警告:warning CS8600:将空文字或可能的空值转换为非空类型。
我不明白为什么。TryGetValue的签名为:
public bool TryGetValue(string key, [MaybeNullWhen(false)] out string value);
Run Code Online (Sandbox Code Playgroud)
该代码示例仅具有Non-Null引用。为什么会出现此错误?
我删除了 Visual Studio,但我喜欢 c#。我从dotnet 官方网站下载了 dotnet并安装了它。然后我写在命令行dotnet new console
和所有工作,dotnet run
工作。然后我创建其他文件夹并在那里写入dotnet new classlib
(是 .dll)并且它工作。但我不知道如何将我的 .dll 文件添加到我的项目中。怎么做?
c# ×7
.net ×5
.net-core ×4
blazor ×4
.net-6.0 ×1
android ×1
asp.net-core ×1
c#-8.0 ×1
dotnet-cli ×1
electron ×1
swagger-ui ×1