首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET周刊【5月第3期 2024-05-19】

文章解释了循环引用的概念,并通过引入延迟策略和字典来跟踪对象引用,从而避免无限递归。核心思想是如果遇到先前已经创建的类型,则复用该对象,通过延迟赋值确保新对象能够正确复制原对象属性。...AutoMapper 是一个.NET 对象映射库,它的安装方法是通过 NuGet 包。你需要创建源对象和目标对象,并在映射配置文件中定义它们之间的映射规则。...| .NET 工具博客 https://blog.jetbrains.com/dotnet/2024/05/07/rider-2024-1-2/ 在 C# 开发工具包中宣布 NuGet 命令 - NuGet...博客 https://devblogs.microsoft.com/nuget/announcing-nuget-commands-in-c-dev-kit/ C# 开发工具包引入包管理和改进的 .NET...会让你的代码更快吗?

12300

拥抱.NET Core系列:Logging (1)

在之前我们简单介绍了 .NET Core 中的 DI组件,没来及了解的童鞋可以翻翻我之前的文章。 接下来会对 .NET Core 中的 Logging 进行介绍。...这几个核心抽象位于 NuGet包:“Microsoft.Extensions.Logging.Abstractions”中。...需要记录的对象,这边可以传入任何类型,这就有点奇怪了日志不都是字符吗? 如果我传一个自建类 UserModel 进去会记录出什么信息呢?请接下来看 formatter 参数。...分割完成之后会将这些 Key 拿去与“FilterLoggerSettings”中的字典表进行匹配,优先最大匹配,也就是说如果我们配置了“ConsoleApp.MyClass”这条项目,则优先使用这条,...NLog、log4jnet 等组件中模糊匹配是采用“.*”的方式,例如:”ConsoleApp.*”,在 .NET Core 中的 Logging 中是不被支持的(把“.*”去掉实现相同的效果),这点需要注意

66311
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【ASP.NET Core 基础知识】--环境设置

    3.2 配置 NuGet 源 配置NuGet源是在.NET Core开发中的一项常见任务,它允许你指定从哪里获取和管理NuGet软件包。...Tip: 确保添加的NuGet源是有效的,并且你有访问它的权限。 优先级的概念是在同时存在多个源时,确定从哪个源获取包。在大多数情况下,你可能不需要手动调整优先级。...在大多数情况下,使用PATH变量来包含.NET Core的安装路径。 环境变量中包含多个版本的.NET Core: 问题: 环境变量中包含多个版本的.NET Core SDK,导致冲突。...更新项目文件中的 元素,以匹配新的.NET Core SDK版本。 更新失败或卡住: 问题: 在运行升级命令时,安装过程可能会失败或卡住。...NuGet 包冲突: 问题: 在升级.NET Core SDK时,可能会发现一些依赖的NuGet包的版本与新版本的.NET Core SDK不兼容。

    35110

    CSharp工程中的几个文件

    、html、js、config、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 Visual Studio中对项目所做的配置,均可在该文件中体现出来。...> 若直接修改packages.config中的内容,如,直接删除packages.config中对某个包的引用,.csproj文件中依然保留了对该包的引用,及packages文件夹中也会保留该包。...这样很有可能导致项目引用的混乱,所以,不建议直接操作packages.config文件。....NET Core .NET Core项目中不在使用packages.config文件文件管理Nuget包,对于Nuget包的引用直接反映到.csproj文件中: NET.Sdk.Web...Core中Nuget包位于%UserProfile%\.nuget\packages 可以使用.NET Core提供的CLI中的命令来获取nuget包的位置: dotnet nuget locals

    1.3K10

    CSharp工程中的几个文件

    、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 Visual Studio中对项目所做的配置,均可在该文件中体现出来。...点击此处,可查看关于配置文件中bindingRedirect的解释。 .NET Core .NET Core官方项目模板中默认不生成App.config或Web.config。...> 若直接修改packages.config中的内容,如,直接删除packages.config中对某个包的引用,.csproj文件中依然保留了对该包的引用,及packages文件夹中也会保留该包。...这样很有可能导致项目引用的混乱,所以,不建议直接操作packages.config文件。...Core中Nuget包位于%UserProfile%\.nuget\packages 可以使用.NET Core提供的CLI中的命令来获取nuget包的位置: dotnet nuget locals

    1.2K20

    .NET 8 中 Android 资源生成的改进和变化

    在 .NET 7 及之前版本的系统中,该类被写入 Resource.designer.cs 文件。它允许用户不需要硬编码Id就可以编写可维护的代码。...旧系统使用了名为 UpdateIdValues 的方法,该方法在启动时调用。该方法将遍历所有库项目并更新资源 Id以匹配应用程序中的资源 Id。根据应用程序的尺寸,这可能会导致严重的启动延迟。...NuGet 包作者 如果您正在维护包含 Android 资源的 NuGet 包,如果是的话,您将需要进行一些更改。...新系统与 Classic Pre .NET Xamarin.Android 以及 .NET 6/7 Android 软件包不兼容。...而是在构建时会生成一个 .aar 文件,其中包含这些数据,并命名为与程序集相同的名称。为了正常工作,需要将.aar 文件与程序集一起发送到 NuGet 中。

    25110

    手动搭建自己的nuget服务器及使用

    创建一个空的ASP.NET Web 应用程序 ? ? 2.使用nuget管理器,添加nuget.server包 ? 安装成功以后,目录结构如下图 ? 3....点击上个步骤中的发布按钮 ? 如图,发布成功 (4). 在IIS中添加网站 ? (5). 可以做如下配置,点击确定 ? 注意,点击确定后,确保应用程序池中相应的应用是4.0版本 ?...6.现在nuget包就已经打好了 但是,如果我们想在我们的私有nuget服务器上有这个包,我们还需要把.nuget文件传到我们私有nuget服务器上; 如果有需要,可以自己在nuget私有服务器项目中添加一个上传功能...在搭建nuget私有服务器时,因为有nuget.server.core,所以,刚开始,有试过创建dotnet core 的版本,但是显示的有部分不兼容。所以,直接就放弃了,没有试验。 2....core 2.2 版本,之前装的runtime版本是2.1.6 ,在发布到IIS以后,不知道什么原因有500的错误;之后下载最近的hosting 2.2.5版本,IIS终于可以正常了。

    4.1K20

    dotnet 简单控制台使用 KernelMemory 向量化文本嵌入生成和查询

    在构建 XAML 过程中创建的 tmp.csproj 过程中将不引用依赖的 nuget 包。...刚好源代码包为了修复在使用 dotnet 6 SDK 之前,在 WPF 的构建 XAML 过程中,不包含第三方库的代码文件,从而使用黑科技将源代码包加入到 WPF 构建 XAML 中。...重复项为: \r\n```重复的原因是 WPF 在 .NET SDK 里修复了在 XAML 构建过程中,没有引用 NuGet 包里面的文件。...因此只需要新建一个程序集,设置 AssemblyName 为 SamplesApp 即 可 关联性: 0.66 内容: NET SDK 里修复了在 XAML 构建过程中,没有引用 NuGet 包里面的文件...刚好源代码包为了修复在使用 dotnet 6 SDK 之前,在 WPF 的构建 XAML 过程中,不包含第三方库的代码文件,从而使用黑科技将源代码包加入到 WPF 构建 XAML 中。

    20910

    .NET 标准

    NET Standard 1.x 作为 NuGet 包的粒度集分发,这会创建一个大型包依赖关系图,并导致开发人员在构建时下载大量包。....NET Standard 版本控制规则 有两个主要的版本控制规则: 附加:.NET Standard 版本在逻辑上是同心圆:更高版本包含以前版本的所有 API。版本之间没有重大变化。....NET Standard 并不特定于任何一个 .NET 实现,也不匹配任何这些实现的版本控制方案。 如前所述,2.1 之后将不再有新的 .NET Standard 版本。...如果您只需要在项目中使用 .NET Standard 2.0 库,您也可以在 Visual Studio 2015 中执行此操作。但是,您需要安装 NuGet 客户端 3.6 或更高版本。...我们不建议以 .NET Standard 1.x 为目标,因为您会限制可用功能集以最小限度地增加覆盖范围。

    1.4K10

    .NET 9 预览版6发布

    “NuGetAudit 最初是在 .NET 8 中添加的,如果项目使用的任何包存在已知漏洞,它会在还原期间发出警告,”Microsoft 解释道。...“它需要一个提供漏洞数据库的包源,所以在实践中你需要使用 https://api.nuget.org/v3/index.json 作为包源,我们计划在不 nuget.org 作为包源的情况下允许审计。...有关 NuGet 审核(包括所有配置选项)的详细信息,请参阅有关 NuGet 审核的文档 dotnet nuget why:一个新命令,用于查明你的项目为什么使用传递包。...6 中的核心更新 对于那些倾向于深入研究细节的人,可以在不同属性的发行说明中找到更多的指南,包括: .NET 9 预览版 6 中的库更新 .NET 9 预览版 6 中的运行时更新 .NET 9 预览版...6 中的 SDK 更新 .NET 9 预览版 6 中的 C# 更新 ASP.NET .NET 9 预览版 6 中的核心更新 .NET 9 预览版 6 中的 .NET MAUI 更新 可以在 .NET

    5810

    .NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结

    .NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结 前言 本文主要是关于.NET Standard 代码 在多框架 和 多平台 支持自己实践过程中遇到的一些问题和解决办法...1.3 解决办法: 在.csproj 文件中编写如下 netstandard2.0;net471 这时如果你编译,或许会遇到System.Web...id=56116 问题2:多个TargeFramework 导致关于Nuget包引用的问题 问题来源:这个问题是因为自己打包生成时的一个坑,忘记添加 Assembly Version了,导致发布出去的包找不到引用的程序集...难道是因为 AssemblyVersion 和最开始的 1.3.2 文件不匹配导致的吗?...微软在Nuget针对这个专门发布了一个Nuget包,想要查看详细 Issue 的可以在这里查看 https://github.com/dotnet/designs/pull/33 Nuget上面包的地址为

    2.2K20

    基于OWin的Web服务器Katana发布版本3

    这种数据结构称为环境字典,随着请求通过管道时会从一个组件传递到另一个组件。 虽然任何键/值数据都可以插入到环境字典中,但 OWIN 规范为某些 HTTP 核心元素定义了键....定义一组基本的环境字典键/值对,使得许多不同的框架和组件作者可以在一个 OWIN 管道中进行互操作,而不必强制实施对特定 .NET 对象模型的协议,例如针对 ASP.NET MVC 中的 HttpContextBase...如果你在应用中使用了Google认证,并且打算升级到Katana版本3,请确保你已读过这篇帖子! Katana可以作为NuGet包获得。...Microsoft.Owin.SelfHost – 包含了为在自行指定的进程中托管基于OWIN的应用程序所必需的一些组件。...Microsoft.Owin.Cors – 这个包里包含了一些能够在OWIN中间件中进行跨域资源共享(CORS)的组件。

    1.4K50

    .NET9 Linux AOT Json序列化

    2.详细内容 在 .NET 6 和更高版本中,你可以使用 Ahead-of-Time (AOT) 编译来优化应用程序的启动时间和性能。...AOT 编译是通过 .NET Native AOT 进行的,尤其适合于需要快速启动和小型部署的场景。要使用 AOT 编译,你需要在项目文件中进行一些配置,并使用命令行工具进行发布。...在使用 .NET 的 AOT 编译时,需要使用这些工具来处理本机代码的链接。解决这个问题的步骤如下: 安装必要的工具 你需要确保在 Linux 系统上安装了 clang 或 gcc。...gcc 确保 clang 或 gcc 在你的 PATH 中: 安装完成后,通常它们会自动添加到 PATH 中。...的运行环境,但是我项目里应用的是.NET9的nuget这时候就导致了无法正常发布AOT。

    11010

    .NET9 Linux AOT Json序列化

    2.详细内容 在 .NET 6 和更高版本中,你可以使用 Ahead-of-Time (AOT) 编译来优化应用程序的启动时间和性能。...AOT 编译是通过 .NET Native AOT 进行的,尤其适合于需要快速启动和小型部署的场景。要使用 AOT 编译,你需要在项目文件中进行一些配置,并使用命令行工具进行发布。...在使用 .NET 的 AOT 编译时,需要使用这些工具来处理本机代码的链接。解决这个问题的步骤如下: 安装必要的工具 你需要确保在 Linux 系统上安装了 clang 或 gcc。...gcc 确保 clang 或 gcc 在你的 PATH 中: 安装完成后,通常它们会自动添加到 PATH 中。...的运行环境,但是我项目里应用的是.NET9的nuget这时候就导致了无法正常发布AOT。

    10510

    【愚公系列】2022年5月 ASP.NET Core下Worker Service构建系统服务实现任务调度

    最后,我们现在有了一个Worker Service应用程序的模板。 这是在ASP.NET Core早期预览中引入的。虽然项目模板最初列在Web模板下,但此后在向导中重新定位了一个级别。...这是在.NET Core中创建长时间运行的跨平台服务的好方法。...Service程序,nuget安装如下包: Microsoft.Extensions.Hosting.WindowsServices 2.添加window服务扩展 在Program中添加UseWindowsService...不选这独立安装服务器需要有对应的.NET Core运行时 发布程序后在程序目录用cmd执行以下代码 sc.exe create 服务名称 binpath=xxxx.exe 二、Worker Service...比如 Windows Events 中,要这么做的话,可以使用 EventLog,在 nuget 上添加 Microsoft.Extensions.Logging.EventLog 包即可。

    62530

    .NET MSBuild 扩展编译时什么时候用 BeforeTargets AfterTargets 什么时候用 DependsOnTargets?

    在为 .NET 项目扩展 MSBuild 编译而编写编译目标(Target)时,我们会遇到用于扩展编译目标用的属性 BeforeTargets AfterTargets 和 DependsOnTargets...这也是 NuGet 源代码包的核心原理部分。...关于 NuGet 源代码包的制作方法,可以扩展阅读: 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 从零开始制作 NuGet 源代码包(全面支持 ....例如我们做一个 NuGet 包,这个 NuGet 包的 .targets 文件中写了下面几个 Target: _WalterlvEvaluateProperties 用于初始化一些属性和参数,其他所有的...会根据 NuGet 包用户的设置有条件地引入一些额外的源代码 那么这个时候我们前面写的用于引入源代码的 _WalterlvIncludeSourceFiles 编译目标其依赖的 Target 会更多。

    44320

    了解 .NET 9 中的新增的包 Microsoft.AspNetCore.OpenApi

    OpenAPI 的核心是一个机器可读的文档,用于描述 API 中可用的 Endpoint(端点)。它不仅包含有关参数、请求和响应的信息,还包含其他元数据,例如属性描述、与安全相关的元数据等。...此 NuGet 包独立于 Swashbuckle 的其余部分,因此可以与新的 OpenAPI 库一起使用,而不会因包含两个实现而出现任何问题或膨胀。...首先是 ASP.NET Core 9 预览版 7 中存在 一个错误,导致 OpenAPI 文档架构在各代之间不稳定 - 这导致了大量不必要的工作完成,并导致内存泄漏,最终导致 OpenAPI 生成完全停止工作...进一步深入研究,我注意到它与索引器一起在代码中的许多地方被使用。这是 .NET 中已知的性能陷阱,此模式会导致双重查找,这可以通过改用该方法来避免。...这些对象在某些情况下包含数十个属性,其中一些属性本身就是字典或数组,它们可以创建一个大型对象图来遍历以计算相等性。

    16610

    WPF dotnet 6 开启 PM v2 的 DPI 感知 导致触摸线程访问 UI 属性抛异常

    这是一个只有在 dotnet 6 框架下,非 dotnet 5 也非 .NET Core 3.1 也非 .NET Framework 的问题,要求开启 DPI 感觉等级为 PerMonitorV2 的特性...,在带触摸屏上的应用,应用运行过程中,切换屏幕的 DPI 之后,触摸过程有概率触发在触摸线程访问 UI 的依赖属性,在触摸线程抛出异常炸掉应用 条件 必须同时满足以下条件: dotnet 6: dotnet...我的版本由以下三个 NuGet 包组成 https://www.nuget.org/packages/dotnetCampus.WPF/6.0.4-alpha05-FixTouch01 https://...在触摸线程收到时,还没有找到命中的元素,这就导致了拿到的空值,无法处理当前命中到的元素所在的窗口,从而无法了解当前触摸点的 DPI 的参数。...然而如果是触摸线程先进来,将会由于触摸线程没有从 _transformToDeviceMatrices 字典获取到对应的 DPI 的参数,从而需要获取 TransformToDevice 属性。

    65600

    .Net Core中使用Grpc

    如果有需要的话,可以使用其他替代方案。 定义的服务分为4中类型: 单项 RPC,即客户端发送一个请求给服务端,从服务端获取一个应答,就像一次普通的函数调用。这种最常用。...其他文件都是生成对应的实体类,但是定义的服务的proto文件,比较特殊,它会生成一个同名的类文件,类中包含 一个抽象类,名称为服务名+Base。...因为客户端不可能每个都通过添加应用项目的方式使用,所以我们还需要打包客户端Nuget包。...6、生成Nuget包,提供给客户端使用   通过VS设置打包生成Nuget包,生成Grpc客户端Nuget包。...2.3 客户端调用Grpc 1、添加引用Google.Protobuf、Grpc.Core、Grpc.Net.Client 还有刚才生成的Nuget包 ShenDa.SSM.Grpc 2、调用 class

    95920
    领券