gpt4 book ai didi

c# - 是否可以在 .NET 程序集中嵌入二进制数据

转载 作者:行者123 更新时间:2023-11-30 19:39:18 25 4
gpt4 key购买 nike

是否可以在 C# 程序集中嵌入二进制数据(作为资源,或通过其他方式),然后在运行时从程序集中读取二进制数据并将其写入文件。

我正在制作 DRM 应用程序,目的是数据必须作为嵌入式资源或受密码保护的 ZIP 文件隐藏在程序集中。因此,我将尝试嵌入资源,如果不可能,则将寻找具有密码保护的 ZIP/UN-ZIP 库来保存 DRM 数据。

我正在用 C# 编写一个程序,其中应该有一个二进制数据,它在编译期间添加到程序集中,就像图像一样,图标在我们编译时添加到程序集中,然后当程序集被用户执行时二进制数据被读取并保存为外部文件。

这可能吗?那怎么办呢?

最佳答案

是的。如果您使用 resources ,您也可以包含文件,这些文件表示为字节数组。否则,您可以包含一个文件并将 Build Action 设置为 Embedded Resource,这也将其作为资源包含在内,您可以手动读取它。

public byte[] ExtractResource(Assembly assembly, string resourceName)
{
if (assembly == null)
{
return null;
}

using (Stream resFilestream = assembly.GetManifestResourceStream(resourceName))
{
if (resFilestream == null)
{
return null;
}

byte[] bytes = new byte[resFilestream.Length];
resFilestream.Read(bytes, 0, bytes.Length);

return bytes;
}
}

然后像这样使用它:

byte[] bytes = this.ExtractResource( Assembly.GetExecutingAssembly()
, "Project.Namespace.NameOfFile.ext"
);

关于c# - 是否可以在 .NET 程序集中嵌入二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com