public void StructTypeWithParameterlessConstructor(bool useInterpreter) { Expression <Func <ValueTypeWithParameterlessConstructor> > lambda = Expression.Lambda <Func <ValueTypeWithParameterlessConstructor> >( Expression.Default(typeof(ValueTypeWithParameterlessConstructor))); Func <ValueTypeWithParameterlessConstructor> func = lambda.Compile(useInterpreter); ValueTypeWithParameterlessConstructor defaultValue = func(); Assert.False(defaultValue.ConstructorWasRun); }
public static void CheckNewStructWithParameterlessConstructorByTypeTest(bool useInterpreter) { Expression <Func <ValueTypeWithParameterlessConstructor> > e = Expression.Lambda <Func <ValueTypeWithParameterlessConstructor> >( Expression.New(typeof(ValueTypeWithParameterlessConstructor))); Func <ValueTypeWithParameterlessConstructor> f = e.Compile(useInterpreter); ValueTypeWithParameterlessConstructor newValue = f(); Assert.True(newValue.ConstructorWasRun); }
public static void CheckNewStructWithParameterlessConstructorByConstructorInfoTest(bool useInterpreter) { ConstructorInfo ctorInfo = typeof(ValueTypeWithParameterlessConstructor).GetConstructor(Type.EmptyTypes); Assert.NotNull(ctorInfo); Expression <Func <ValueTypeWithParameterlessConstructor> > e = Expression.Lambda <Func <ValueTypeWithParameterlessConstructor> >( Expression.New(ctorInfo)); Func <ValueTypeWithParameterlessConstructor> f = e.Compile(useInterpreter); ValueTypeWithParameterlessConstructor newValue = f(); Assert.True(newValue.ConstructorWasRun); }