.net - 依赖注入(inject)和代码混淆

标签 .net design-patterns architecture dependency-injection

在 Mark Seemann 的书中 Dependency Injection in .NET ,他指出越来越多的人正在使用具有自动注册支持的 DI 容器,其中容器可以解析所需具体类型的实例,而几乎不需要任何类型的事先配置,这与约定优于配置架构方法相得益彰。但这让我想知道如果我使用了混淆器,这不会破坏代码库并导致容器失败,因为约定已经改变了?

最佳答案

即使您以混淆的方式发布应用程序程序集,您通常仍然可以使用依赖项注入(inject)。这会起作用,因为您通常会使用通用类型(例如 Register<IService, Impl>() )或 typeof注册类型的参数(例如 Register(typeof(IService), typeof(Impl)) )。换句话说,编译器可以为您检查的所有内容仍然有效(当混淆器正常工作时)。

您应该密切关注的是编译器无法检查的所有内容。事情如下:

所以你必须仔细观察这些问题。不要忘记通过creating a verifiable configuration来保护自己在您的情况下,我将在应用程序启动时验证此配置(或添加命令行开关,以便应用程序可以进行自检)。

关于.net - 依赖注入(inject)和代码混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123874/

相关文章:

java - 设计包含生成 ID 的 Java 类的最佳方法

web-applications - 为移动和 Web 应用程序设计通用服务器端

c# - 使用弹性数据库客户端库、EF 和 Identity 时找不到 DbContext

c# - PasswordDeriveBytes (System.Security.Cryptography) 如果处置失败

c# - 在任意位置的两个分隔符之间获取子字符串

php - Laravel + Vue 前端与可选的服务器端 Blade 渲染解耦

android - 如何使用 MVP 从 RecyclerView 插入/删除项目

sql - 如何在 PostgreSql 中插入一条记录并返回新的 id 作为输出参数

python - 访客模式,为什么有用?

.net - 将 .net 对象的类更改为子类