我在web program.cs中指定分层体系结构中的映射服务操作,但我希望在另一层使用此应用程序。我很难选择集会。
网络层Program.cs
var config = TypeAdapterConfig.GlobalSettings;
config.Scan(Assembly.GetAssembly(typeof(UserMappingConfig)));
builder.Services.AddSingleton(config);
builder.Services.AddScoped<IMapper, ServiceMapper>();
服务层映射类
namespace Exams.Service.Mapping
{
public class QuestionMappingConfig : IRegister
{
public void Register(TypeAdapterConfig config)
{
config.NewConfig<QuestionViewModel, Question>().IgnoreNullValues(true);
config.NewConfig<List<QuestionViewModel>,List<Question>>().IgnoreNullValues(true);
config.NewConfig<Question, QuestionViewModel>().IgnoreNullValues(true);
}
}
}
我收到这样的警告
严重性代码描述项目文件行抑制状态警告CS8604在“IList TypeAdapterConfig.Scan(params Assembly[]程序集)”中参数“程序集”可能为空引用参数。
总之,对于我必须在Web层中定义的Mapster应用程序,我想使用我在服务层中定义的配置,但是我很难选择程序集。我怎么才能修好?
发布于 2022-09-22 19:29:46
Assembly.GetAssembly
返回Assembly?
(参见可空引用类型),您可以使用null-宽恕运算符(!
):
config.Scan(Assembly.GetAssembly(typeof(UserMappingConfig))!);
或者只需从类型实例中使用Assembly
:
config.Scan(typeof(UserMappingConfig).Assembly);
https://stackoverflow.com/questions/73817425
复制相似问题