123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Reflection;
- using System.Globalization;
- using ILRuntime.CLR.Method;
- using ILRuntime.CLR.TypeSystem;
- namespace ILRuntime.Reflection
- {
- public class ILRuntimeConstructorInfo : ConstructorInfo
- {
- ILMethod method;
- ILRuntimeParameterInfo[] parameters;
- public ILRuntimeConstructorInfo(ILMethod m)
- {
- method = m;
- parameters = new ILRuntimeParameterInfo[m.ParameterCount];
- for(int i = 0; i < m.ParameterCount; i++)
- {
- var pd = m.Definition.Parameters[i];
- parameters[i] = new ILRuntimeParameterInfo(pd, m.Parameters[i], this);
- }
- }
- internal ILMethod ILMethod { get { return method; } }
- public override MethodAttributes Attributes
- {
- get
- {
- return MethodAttributes.Public;
- }
- }
- public override Type DeclaringType
- {
- get
- {
- return method.DeclearingType.ReflectionType;
- }
- }
- public override RuntimeMethodHandle MethodHandle
- {
- get
- {
- throw new NotImplementedException();
- }
- }
- public override string Name
- {
- get
- {
- return method.Name;
- }
- }
- public override Type ReflectedType
- {
- get
- {
- return method.DeclearingType.ReflectionType;
- }
- }
- public override object[] GetCustomAttributes(bool inherit)
- {
- throw new NotImplementedException();
- }
- public override object[] GetCustomAttributes(Type attributeType, bool inherit)
- {
- throw new NotImplementedException();
- }
- public override MethodImplAttributes GetMethodImplementationFlags()
- {
- throw new NotImplementedException();
- }
- public override ParameterInfo[] GetParameters()
- {
- return parameters;
- }
- public override object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
- {
- var res = ((ILType)method.DeclearingType).Instantiate(false);
- method.DeclearingType.AppDomain.Invoke(method, res, parameters);
- return res;
- }
- public override bool IsDefined(Type attributeType, bool inherit)
- {
- throw new NotImplementedException();
- }
- public override object Invoke(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
- {
- var res = ((ILType)method.DeclearingType).Instantiate(false);
- method.DeclearingType.AppDomain.Invoke(method, res, parameters);
- return res;
- }
- }
- }
|