public PropertyReference(EvaluationContext ctx, PropertyInfo prop, CorValRef thisobj, CorApi.Portable.Type declaringType, CorValRef[] index)
            : base(ctx)
        {
            this.prop          = prop;
            this.declaringType = declaringType;
            if (declaringType.CorType == CorApi.Portable.CorElementType.ElementTypeArray ||
                declaringType.CorType == CorApi.Portable.CorElementType.ElementTypeSzarray)
            {
                this.module = ((CorApi.Portable.Type)((CorEvaluationContext)ctx).Adapter.GetType(ctx, "System.Object")).Class.Module;
            }
            else
            {
                this.module = declaringType.Class.Module;
            }
            this.index = index;
            if (!prop.GetGetMethod(true).IsStatic)
            {
                this.thisobj = thisobj;
            }

            flags = GetFlags(prop);

            loader = delegate {
                return(((CorValRef)Value).Val);
            };
        }
Exemple #2
0
        public CorMetadataImport(CorApi.Portable.Module managedModule)
        {
            SharpDX.ComObject mdi = null;
            managedModule.GetMetaDataInterface(typeof(CorApi.Portable.IMetaDataImport).GUID, out mdi);

            m_importer = mdi.QueryInterfaceOrNull <CorApi.Portable.IMetaDataImport>();
            Debug.Assert(m_importer != null);
        }