c# - 使对象在运行时不可变 [C#]

标签 c# .net reflection immutability setter

有什么方法(我希望利用反射)可以使实例化对象及其所有公共(public)属性不可变?我有一个来自其他人的代码库(没有可用的源代码)的类,我需要使用它,我基本上希望在实例化后任何地方的任何代码试图调用此类中的公共(public) setter 时抛出异常。

注意:我不想为了实现它而围绕类创建包装器对象。我很懒。

最佳答案

我很难相信你愿意引入反射代码来做一些可以用包装类简单地解决的事情。

现在投入一小部分时间,以后当您的反射代码出现问题或需要修改时,您就可以省下很多痛苦的时间。包装器类简单、易于实现、类型安全并且对以后的其他开发人员有意义。不要让懒惰支配您的架构选择。

关于c# - 使对象在运行时不可变 [C#],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1120999/

相关文章:

c# - 我可以避免这种代码复制粘贴吗?

c# - 为什么使用 Windows 工作流?

c# - 表单获得焦点时发生的事件

javascript - 如何获取对象的所有属性?

Java 反射 : How do I override or generate methods at runtime?

c# - Xamarin Android : Failed to resolve type MvvmCross. Core.ViewModels.IMvxAppStart

c# - 在 C# 中引用变量?

.net 可移植类库包含 Microsoft.VisualBasic 作为依赖项

.net - 使用azure AD的 Multi-Tenancy 微服务架构

c# - 如何在AppDomain中找到尚未加载的类型?