.NET如何获取嵌入的资源文件

10
我有一个嵌入式资源文件: enter image description here 我需要将其作为流打开。
我尝试过的方法(没有成功,流为空):
var assembly = Assembly.GetExecutingAssembly();
using (var stream = assembly.GetManifestResourceStream("client_secret.json"))

您有任何想法或建议吗?

编辑:我对它的处理方式:

using (var stream = assembly.GetManifestResourceStream("client_secret.json"))
{
    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                // This OAuth 2.0 access scope allows an application to upload files to the
                // authenticated user's YouTube channel, but doesn't allow other types of access.
                  new[] { YouTubeService.Scope.YoutubeUpload },
                  "user",
                  CancellationToken.None
                );
}

你说的“Stream Philip”是什么意思?你是想将那个文件流式传输给另一个客户端吗?还是只是打开文件以访问其中的内容? - Ali
@combo_ci,我只是想打开文件以访问内容,请参见上文。我已更新我的帖子。 - Philip Tenn
可能是如何读取嵌入式资源文本文件的重复问题。 - Clint
2个回答

10

我解决了这个问题,我必须提供资源的完整命名空间:

using (var stream = assembly.GetManifestResourceStream("Project.Resources.client_secret.json"))

6

在解决方案资源管理器中右键单击您的项目 -> 添加 -> 新建项 -> 资源文件

然后双击创建的文件(例如Resource1.resx),然后将client_secret.json添加到其中。现在,您可以使用以下代码访问client_secret.json内容。请注意,如果将json文件放入资源中,获取client_secret时会得到一个byte[],必须将其转换为字符串

 var foo= Encoding.UTF8.GetString(Resource1.client_secret);

但是如果只添加 .txt 文件,您可以使用以下方式访问该文件:

var foo= Resource1.txtfile;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接