首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Assembly.Load(程序集)从不为空?

为什么Assembly.Load(程序集)从不为空?
EN

Stack Overflow用户
提问于 2021-08-14 00:28:11
回答 1查看 141关注 0票数 0

网芯3.1

AssemblyName_

Assembly.Load(程序集)的返回值如何从不为空?我收到的代码提示是,表达式(Assembly.Load(Assembly) != null)始终为真。程序集是引用类型吗?

代码语言:javascript
运行
复制
                if (env.IsDevelopment())
                {
                    var appAssembly = Assembly.Load(new AssemblyName(env.ApplicationName));
                    if (appAssembly != null)
                    {
                        config.AddUserSecrets(appAssembly, optional: true);
                    }
                }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-14 00:42:28

.NET Core:

这是因为源代码中的这一行,它实际上告诉编译器这个值不是null。请参阅此处的静态代码分析的文档

代码语言:javascript
运行
复制
return retAssembly!;

因此,您将得到一个非空值或异常。

.NET框架:

这是因为源代码有一份合同:

代码语言:javascript
运行
复制
public static Assembly Load(AssemblyName assemblyRef)
{
    Contract.Ensures(Contract.Result<Assembly>() != null);
    //More code
}

所以要么得到一个非空的返回值,要么得到一个异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68779485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档