How to use ConstReference class of Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST package

Best JustMockLite code snippet using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST.ConstReference

ClassProxyInstanceContributor.cs

Source:ClassProxyInstanceContributor.cs Github

copy

Full Screen

...77			codebuilder.AddStatement(new ExpressionStatement(78			                         	new MethodInvocationExpression(79			                         		serializationInfo,80			                         		SerializationInfoMethods.AddValue_Bool,81			                         		new ConstReference("__delegateToBase").ToExpression(),82			                         		new ConstReference(delegateToBaseGetObjectData).83			                         			ToExpression())));84			if (delegateToBaseGetObjectData == false)85			{86				EmitCustomGetObjectData(codebuilder, serializationInfo);87				return;88			}89			EmitCallToBaseGetObjectData(codebuilder, serializationInfo, streamingContext);90		}91		private void EmitCustomGetObjectData(AbstractCodeBuilder codebuilder, ArgumentReference serializationInfo)92		{93			var members = codebuilder.DeclareLocal(typeof(MemberInfo[]));94			var data = codebuilder.DeclareLocal(typeof(object[]));95			var getSerializableMembers = new MethodInvocationExpression(96				null,97				FormatterServicesMethods.GetSerializableMembers,98				new TypeTokenExpression(targetType));99			codebuilder.AddStatement(new AssignStatement(members, getSerializableMembers));100			// Sort to keep order on both serialize and deserialize side the same, c.f DYNPROXY-ISSUE-127101			var callSort = new MethodInvocationExpression(102				null,103				TypeUtilMethods.Sort,104				members.ToExpression());105			codebuilder.AddStatement(new AssignStatement(members, callSort));106			var getObjectData = new MethodInvocationExpression(107				null,108				FormatterServicesMethods.GetObjectData,109				SelfReference.Self.ToExpression(),110				members.ToExpression());111			codebuilder.AddStatement(new AssignStatement(data, getObjectData));112			var addValue = new MethodInvocationExpression(113				serializationInfo,114				SerializationInfoMethods.AddValue_Object,115				new ConstReference("__data").ToExpression(),116				data.ToExpression());117			codebuilder.AddStatement(new ExpressionStatement(addValue));118		}119		private void EmitCallToBaseGetObjectData(AbstractCodeBuilder codebuilder, ArgumentReference serializationInfo,120		                                         ArgumentReference streamingContext)121		{122			var baseGetObjectData = targetType.GetMethod("GetObjectData",123			                                             new[] { typeof(SerializationInfo), typeof(StreamingContext) });124			codebuilder.AddStatement(new ExpressionStatement(125			                         	new MethodInvocationExpression(baseGetObjectData,126			                         	                               serializationInfo.ToExpression(),127			                         	                               streamingContext.ToExpression())));128		}129		private void Constructor(ClassEmitter emitter)130		{131			if (!delegateToBaseGetObjectData)132			{133				return;134			}135			GenerateSerializationConstructor(emitter);136		}137		private void GenerateSerializationConstructor(ClassEmitter emitter)138		{139			var serializationInfo = new ArgumentReference(typeof(SerializationInfo));140			var streamingContext = new ArgumentReference(typeof(StreamingContext));141			var ctor = emitter.CreateConstructor(serializationInfo, streamingContext);142			ctor.CodeBuilder.AddStatement(143				new ConstructorInvocationStatement(serializationConstructor,144				                                   serializationInfo.ToExpression(),145				                                   streamingContext.ToExpression()));146			foreach (var field in serializedFields)147			{148				var getValue = new MethodInvocationExpression(serializationInfo,149				                                              SerializationInfoMethods.GetValue,150				                                              new ConstReference(field.Reference.Name).ToExpression(),151				                                              new TypeTokenExpression(field.Reference.FieldType));152				ctor.CodeBuilder.AddStatement(new AssignStatement(153				                              	field,154				                              	new ConvertExpression(field.Reference.FieldType,155				                              	                      typeof(object),156				                              	                      getValue)));157			}158			ctor.CodeBuilder.AddStatement(new ReturnStatement());159		}160		private bool VerifyIfBaseImplementsGetObjectData(Type baseType, IList<MethodInfo> methodsToSkip)161		{162			if (!typeof(ISerializable).IsAssignableFrom(baseType))163			{164				return false;...

Full Screen

Full Screen

ProxyInstanceContributor.cs

Source:ProxyInstanceContributor.cs Github

copy

Full Screen

...91					typeLocal,92					new MethodInvocationExpression(93						null,94						TypeMethods.StaticGetType,95						new ConstReference(typeof(ProxyObjectReference).AssemblyQualifiedName).ToExpression(),96						new ConstReference(1).ToExpression(),97						new ConstReference(0).ToExpression())));98			getObjectData.CodeBuilder.AddStatement(99				new ExpressionStatement(100					new MethodInvocationExpression(101						info,102						SerializationInfoMethods.SetType,103						typeLocal.ToExpression())));104			foreach (var field in emitter.GetAllFields())105			{106				if (field.Reference.IsStatic)107				{108					continue;109				}110				if (field.Reference.IsNotSerialized)111				{112					continue;113				}114				AddAddValueInvocation(info, getObjectData, field);115			}116			var interfacesLocal = getObjectData.CodeBuilder.DeclareLocal(typeof(string[]));117			getObjectData.CodeBuilder.AddStatement(118				new AssignStatement(119					interfacesLocal,120					new NewArrayExpression(interfaces.Length, typeof(string))));121			for (var i = 0; i < interfaces.Length; i++)122			{123				getObjectData.CodeBuilder.AddStatement(124					new AssignArrayStatement(125						interfacesLocal,126						i,127						new ConstReference(interfaces[i].AssemblyQualifiedName).ToExpression()));128			}129			getObjectData.CodeBuilder.AddStatement(130				new ExpressionStatement(131					new MethodInvocationExpression(132						info,133						SerializationInfoMethods.AddValue_Object,134						new ConstReference("__interfaces").ToExpression(),135						interfacesLocal.ToExpression())));136			getObjectData.CodeBuilder.AddStatement(137				new ExpressionStatement(138					new MethodInvocationExpression(139						info,140						SerializationInfoMethods.AddValue_Object,141						new ConstReference("__baseType").ToExpression(),142						new ConstReference(emitter.BaseType.AssemblyQualifiedName).ToExpression())));143			getObjectData.CodeBuilder.AddStatement(144				new ExpressionStatement(145					new MethodInvocationExpression(146						info,147						SerializationInfoMethods.AddValue_Object,148						new ConstReference("__proxyGenerationOptions").ToExpression(),149						emitter.GetField("proxyGenerationOptions").ToExpression())));150			getObjectData.CodeBuilder.AddStatement(151				new ExpressionStatement(152					new MethodInvocationExpression(info,153					                               SerializationInfoMethods.AddValue_Object,154					                               new ConstReference("__proxyTypeId").ToExpression(),155					                               new ConstReference(proxyTypeId).ToExpression())));156			CustomizeGetObjectData(getObjectData.CodeBuilder, info, getObjectData.Arguments[1], emitter);157			getObjectData.CodeBuilder.AddStatement(new ReturnStatement());158		}159		protected virtual void AddAddValueInvocation(ArgumentReference serializationInfo, MethodEmitter getObjectData,160		                                             FieldReference field)161		{162			getObjectData.CodeBuilder.AddStatement(163				new ExpressionStatement(164					new MethodInvocationExpression(165						serializationInfo,166						SerializationInfoMethods.AddValue_Object,167						new ConstReference(field.Reference.Name).ToExpression(),168						field.ToExpression())));169			return;170		}171		protected abstract void CustomizeGetObjectData(AbstractCodeBuilder builder, ArgumentReference serializationInfo,172		                                               ArgumentReference streamingContext, ClassEmitter emitter);173#endif174		public void CollectElementsToProxy(IProxyGenerationHook hook, MetaType model)175		{176		}177	}178}...

Full Screen

Full Screen

InterfaceProxyInstanceContributor.cs

Source:InterfaceProxyInstanceContributor.cs Github

copy

Full Screen

...34		{35			var targetField = emitter.GetField("__target");36			codebuilder.AddStatement(new ExpressionStatement(37			                         	new MethodInvocationExpression(serializationInfo, SerializationInfoMethods.AddValue_Object,38			                         	                               new ConstReference("__targetFieldType").ToExpression(),39			                         	                               new ConstReference(40			                         	                               	targetField.Reference.FieldType.AssemblyQualifiedName).41			                         	                               	ToExpression())));42			codebuilder.AddStatement(new ExpressionStatement(43			                         	new MethodInvocationExpression(serializationInfo, SerializationInfoMethods.AddValue_Object,44			                         	                               new ConstReference("__theInterface").ToExpression(),45			                         	                               new ConstReference(targetType.AssemblyQualifiedName).46			                         	                               	ToExpression())));47		}48#endif49	}50}...

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Telerik.JustMock.Core;7using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;8{9    {10        static void Main(string[] args)11        {12            var constReference = new ConstReference(1);13            Console.WriteLine(constReference.GenerateCode(null));14            Console.ReadLine();15        }16    }17}

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1{2    {3        private readonly object value;4        public ConstReference(object value)5        {6            this.value = value;7        }8        public override void Emit(IEasyMember member, ILGenerator gen)9        {10            if (value == null)11            {12                gen.Emit(OpCodes.Ldnull);13            }14            else if (value is int)15            {16                switch ((int)value)17                {18                        gen.Emit(OpCodes.Ldc_I4_M1);19                        break;20                        gen.Emit(OpCodes.Ldc_I4_0);21                        break;22                        gen.Emit(OpCodes.Ldc_I4_1);23                        break;24                        gen.Emit(OpCodes.Ldc_I4_2);25                        break;26                        gen.Emit(OpCodes.Ldc_I4_3);27                        break;28                        gen.Emit(OpCodes.Ldc_I4_4);29                        break;30                        gen.Emit(OpCodes.Ldc_I4_5);31                        break;32                        gen.Emit(OpCodes.Ldc_I4_6);33                        break;34                        gen.Emit(OpCodes.Ldc_I4_7);35                        break;36                        gen.Emit(OpCodes.Ldc_I4_8);37                        break;38                        if ((int)value >= -128 && (int)value <= 127)39                        {40                            gen.Emit(OpCodes.Ldc_I4_S, (sbyte)(int)value);41                        }42                        {43                            gen.Emit(OpCodes.Ldc_I4, (int)value);44                        }45                        break;46                }47            }48            else if (value is string)49            {50                gen.Emit(OpCodes.Ldstr, (string)value);51            }52            else if (value is bool)53            {54                if ((bool)value)55                {56                    gen.Emit(OpCodes.Ldc_I4_1);57                }58                {59                    gen.Emit(OpCodes.Ldc_I4_0);60                }61            }62            {63                throw new NotSupportedException();64            }65        }66    }67}

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;2using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;3using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;4using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;5using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;6using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;7using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;8using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;9using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;10using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;11using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;2using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;3using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;4using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;5using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;6{7    {8        public ConstReference constReference;9        public IFieldReference iFieldReference;10        public MethodReference methodReference;11        public Reference reference;12    }13}

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;2using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters;3using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;4using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;5using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;6using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;7using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;8using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;9using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;10using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;11using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;7{8    {9        public void TestMethod()10        {11            var constantReference = new ConstReference("test");12            var constantReference2 = new ConstReference(2);13        }14    }15}

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;6{7    {8        static void Main(string[] args)9        {10            ConstReference cr = new ConstReference("Hello");11            Console.WriteLine(cr.Value);12            Console.ReadLine();13        }14    }15}16using System;17using System.Collections.Generic;18using System.Linq;19using System.Text;20using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;21{22    {23        static void Main(string[] args)24        {25            ConstReference cr = new ConstReference("Hello");26            Console.WriteLine(cr.Value);27            Console.ReadLine();28        }29    }30}31Error CS0121 The call is ambiguous between the following methods or properties: 'ConstReference.ConstReference(object)' and 'ConstReference.ConstReference(object)'32using System;33using System.Collections.Generic;34using System.Linq;35using System.Text;36using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;37{38    {39        static void Main(string[] args)40        {41            Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST.ConstReference cr = new Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST.ConstReference("Hello");42            Console.WriteLine(cr.Value);43            Console.ReadLine();44        }45    }46}

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using System;2using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;3{4    {5        public static void Main(string[] args)6        {7            var constRef = new ConstReference(1);8            Console.WriteLine(constRef);9        }10    }11}12using System;13using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters;14{15    {16        public static void Main(string[] args)17        {18            var constRef = new ConstReference(1);19            Console.WriteLine(constRef);20        }21    }22}

Full Screen

Full Screen

ConstReference

Using AI Code Generation

copy

Full Screen

1using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;2var constReference = new ConstReference(1);3var myValue = constReference.GetValue();4Console.WriteLine(myValue);5using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;6var constReference = new ConstReference(1);7var myValue = constReference.GetValue();8Console.WriteLine(myValue);9using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;10var constReference = new ConstReference(1);11var myValue = constReference.GetValue();12Console.WriteLine(myValue);13using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;14var constReference = new ConstReference(1);15var myValue = constReference.GetValue();16Console.WriteLine(myValue);17using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;18var constReference = new ConstReference(1);19var myValue = constReference.GetValue();20Console.WriteLine(myValue);21using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;22var constReference = new ConstReference(1);23var myValue = constReference.GetValue();24Console.WriteLine(myValue);25using Telerik.JustMock.Core.Castle.DynamicProxy.Generators.Emitters.SimpleAST;26var constReference = new ConstReference(1);

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run JustMockLite automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful