Exemplo n.º 1
0
        private void EmitIL(AssemblyBuilder assemblyBuilder, ModuleBuilder moduleBuilder)
        {
            // Create a new type object for the the field accessor class.
            EmitType(moduleBuilder);

            // Create a new instance
            _emittedSetter = assemblyBuilder.CreateInstance("SetFor" + _targetType.FullName + _fieldName) as ISetter;

            this.nullInternal = this.GetNullInternal(_fieldType);

            if (_emittedSetter == null)
            {
                throw new NotSupportedException(
                    string.Format("Unable to create a set field accessor for '{0}' field on class  '{0}'.", _fieldName, _fieldType));
            }
        }
        /// <summary>
        /// This method create a new type oject for the the property accessor class 
        /// that will provide dynamic access.
        /// </summary>
        /// <param name="assemblyBuilder">The assembly builder.</param>
        /// <param name="moduleBuilder">The module builder.</param>
        private void EmitIL(AssemblyBuilder assemblyBuilder, ModuleBuilder moduleBuilder)
        {
            // Create a new type object for the the field accessor class.
            EmitType(moduleBuilder);

            // Create a new instance
            _emittedSet = assemblyBuilder.CreateInstance("SetFor" + _targetType.FullName + _propertyName) as ISet;

            nullInternal = GetNullInternal(_propertyType);

            if (_emittedSet == null)
            {
                throw new NotSupportedException(
                    string.Format("Unable to create a get propert accessor for '{0}' property on class  '{1}'.", _propertyName, _propertyType));
            }
        }
Exemplo n.º 3
0
 private T CreateInstance <T>(System.Reflection.Emit.AssemblyBuilder assembly, string className, Object[] args)
 {
     return((T)assembly.CreateInstance(className, false, BindingFlags.CreateInstance, null, args, null, null));
 }