Jump to content
Tuts 4 You

Reflection Tips: Create Instance without calling constructor


Recommended Posts

Create Instance without calling constructor

FormatterServices.GetUninitializedObject() will create an instance without calling a constructor. I found this class by using Reflector and digging through some of the core .Net serialization classes.


using System;
using System.Reflection;
using System.Runtime.Serialization;

namespace NoConstructorThingy
    class Program
        static void Main()
            // does not call ctor
            var myClass = (MyClass)FormatterServices.GetUninitializedObject(typeof(MyClass));

            Console.WriteLine(myClass.One); // writes "0", constructor not called
            Console.WriteLine(myClass.Two); // writes "0", field initializer not called

    public class MyClass
        public MyClass()
            Console.WriteLine("MyClass ctor called.");
            One = 1;

        public int One { get; private set; }
        public readonly int Two = 2;




  • Thanks 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...