.NET Standard 2.0 - Windows Registry - 适用于 Mac OS X - Unity
.NET Standard 2.0 - Windows Registry - works on Mac OS X - Unity
我的项目(最初在 Unity - Windows 上开发)API 兼容性级别设置为 .NET Standard 2.0,在我的项目中我有一个外部 .dll class 库也编译为 .NET Standard 2.0,其中使用 Microsoft.Win32。我正在将一些数据保存到 Windows 注册表。
现在我也在调整项目以在 Mac 上工作,我发现我的带有注册表的外部 .dll 在我的 Mac 上也没有错误。
我一直在寻找可以将数据存储在哪里,因为 Mac 的 OS X 没有像注册表这样的 Windows?
为什么以及如何运作?
该代码在Unity中用作.dll插件。
using Microsoft.Win32;
...
private RegistryKey key;
public StorageImpl()
{
key = Registry.CurrentUser.OpenSubKey(RegistryKeyPath, true);
if (key == null)
{
key = Registry.CurrentUser.CreateSubKey(RegistryKeyPath);
}
}
public DateTime? StartDate
{
get
{
object value = key.GetValue(RegistryStartDate);
return value != null ? DateTime.FromBinary((long)value) : (DateTime?)null;
}
set
{
if (value != null)
{
key.SetValue(RegistryStartDate, value.Value.ToBinary(), RegistryValueKind.QWord);
}
else
{
key.DeleteValue(RegistryStartDate);
}
key.Flush();
}
}
我找到了保存数据的位置:
/Users/user/.mono/registry/CurrentUser/software/nameOfSoftware/values.xml
我不得不使用终端手动搜索列出所有文件夹内容:ls -a
我的项目(最初在 Unity - Windows 上开发)API 兼容性级别设置为 .NET Standard 2.0,在我的项目中我有一个外部 .dll class 库也编译为 .NET Standard 2.0,其中使用 Microsoft.Win32。我正在将一些数据保存到 Windows 注册表。
现在我也在调整项目以在 Mac 上工作,我发现我的带有注册表的外部 .dll 在我的 Mac 上也没有错误。
我一直在寻找可以将数据存储在哪里,因为 Mac 的 OS X 没有像注册表这样的 Windows?
为什么以及如何运作?
该代码在Unity中用作.dll插件。
using Microsoft.Win32;
...
private RegistryKey key;
public StorageImpl()
{
key = Registry.CurrentUser.OpenSubKey(RegistryKeyPath, true);
if (key == null)
{
key = Registry.CurrentUser.CreateSubKey(RegistryKeyPath);
}
}
public DateTime? StartDate
{
get
{
object value = key.GetValue(RegistryStartDate);
return value != null ? DateTime.FromBinary((long)value) : (DateTime?)null;
}
set
{
if (value != null)
{
key.SetValue(RegistryStartDate, value.Value.ToBinary(), RegistryValueKind.QWord);
}
else
{
key.DeleteValue(RegistryStartDate);
}
key.Flush();
}
}
我找到了保存数据的位置: /Users/user/.mono/registry/CurrentUser/software/nameOfSoftware/values.xml
我不得不使用终端手动搜索列出所有文件夹内容:ls -a