如何在不初始化对象的情况下构造它? (。网)

发布于 2024-09-15 12:52:15 字数 211 浏览 5 评论 0原文

当您在 C# 中新建一个对象时,必须发生一些事情:

  1. 创建该对象的内存,并且将其他簿记 CLR 要做的
  2. 字段初始化为默认值,
  3. 调用构造函数

序列化框架似乎有一些神奇的方法可以做到这一点1 而不执行 2 和 3。或者也许它根本没有那么神奇。如果您正在编写自己的反序列化代码,您将如何执行相同的操作(跳过 2 和 3)?

When you new an object in C# a few things must happen:

  1. memory for the object is created, and whatever other book-keeping CLR whats to do
  2. fields are initialized to default values
  3. the constructor is invoked

Serialization frameworks seem to have some magical way to do 1 without doing 2 and 3. Or maybe it's not so magical after all. How would you do the same (skip 2 and 3) if you are writing your own deserialization code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

看春风乍起 2024-09-22 12:52:15

二进制格式化程序使用 FormatterServices 的方法,例如获取UninitializedObject

Binary formatter uses methods of FormatterServices, like GetUninitializedObject.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文