settings"
Settings.settings,可以通过经典的设置设计器进行编辑,看起来像在.Net 4.8中那样,并且在项目的根文件夹中自动创建了一个新的App.config XML文件,这个文件夹看起来也像.Net 4.8中使用的那样,okay现在,同样的过程显然只能在
在相同的解决方案中添加了一个新的“类库”项目,我希望在这个解决方案中使用configurably:
在名称空间'System.Configuration‘中找不到类型名称’
‘CS1069。此类型已转发给程序集“System.Configuration.ConfigurationManager、Version=0.0.0.0、Culture=neutral、PublicKeyToken=cc7b13ffcd2ddd51”,请考虑向该程序集添加引用。C:\Users\Stefan\source\repos\WpfCorePropertiesSettings\ClassLibrary1\Properties\Settings.Designer.cs 16活性ClassLibrary1
TLDNR,实际问题:这是一个可以接受的解决方案还是一个可以避免的假象?
在我看来,NuGet包描述听起来不像是为了这个目的而制作的,我以前也没有听说过维护人员的名字(这可能重要吗?) https://github.com/davidwhitney/System.Configuration.Abstractions?
提亚
PS:


发布于 2022-12-03 09:35:04
同时,我对自定义的"AppSettings.json“方法感到满意。
删除前面描述的“经典app.config”方法之后,在添加了两个NuGet包之后:
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />..。我在Visual中的“类库”(子)项目级别手动创建了一个自定义Json文件,并设置了它的CopyToOutputDirectory属性
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>并添加了“IConfigurationBuilder`”部分:
using Microsoft.Extensions.Configuration;
namespace Xyz.Data
{
internal class AppSettingsConfig
{
public AppSettingsConfig()
{
IConfigurationBuilder builder = new ConfigurationBuilder();
_ = builder.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "AppSettings.Movies3Data.json"));
var root = builder.Build();
AttachedDb = root.GetConnectionString("AttachedDb")!;
}
public string AttachedDb { get; init; }
}
}然后把它变成了“乔恩·斯基特·索尔顿”
/// <summary>
/// Singleton as described by Jon Skeet
/// </summary>
/// https://csharpindepth.com/Articles/Singleton
internal sealed class AppSettingsConfigSingleton
{
private static readonly Logger log = LogManager.GetCurrentClassLogger();
private AppSettingsConfigSingleton()
{
log.Trace($"{nameof(AppSettingsConfigSingleton)} ctor is running");
IConfigurationBuilder builder = new ConfigurationBuilder();
_ = builder.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "AppSettings.Movies3Data.json"));
var root = builder.Build();
AttachedDb = root.GetConnectionString("AttachedDb")!;
}
static AppSettingsConfigSingleton() { }
public string? AttachedDb { get; init; }
public static AppSettingsConfigSingleton Instance { get { return Nested.instance; } }
private class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}
internal static readonly AppSettingsConfigSingleton instance = new();
}
}而且它“运行良好”,它还阅读JSON内容,只是在运行时被管理员修改了。(这将是多UI解决方案中工作单元模式的Entity Framework Core "localdb“位置)。“我也再次感谢你,”EldHasp说。
发布于 2022-11-04 04:51:49
也许我不明白什么..。为什么要创建“等价于UserSettings"?
我的配置是Win10+VS2022。我正在创建一个WPF .Net6项目。我转到“Properties”菜单。在“项目属性”选项卡的菜单(左边的列)中有一个项选项。选中时,如果尚未创建设置,则将有一个小注释和一个指向“打开或创建应用程序设置”的链接。
不幸的是,我有俄语本土化,所以屏幕截图与俄罗斯名字。



加法
,但是一个额外的“类库”子项目在我的En/US本地化中似乎没有那个Properties选项。是你的吗?
这些是应用程序的设置。因此,它们在图书馆里没有多大意义。但如果需要,只需将类复制到库中,然后设置所需的链接即可。
为此,输入应用程序代码行Properties.Settings.Default.Save();。将光标移动到Settings并按下F12键。

您将被带到Settings类声明的源代码中。此代码由代码生成器生成。

移到后,将所有源代码复制到另一个项目中的类中。迁移之后,您可能需要在项目中添加引用,修复名称空间并添加using。
至于类库项目中的参数,它可能取决于这个库的类型。我在WPF的类库中有这样的设置。

但在图书馆的标准-不。

https://stackoverflow.com/questions/74309719
复制相似问题