Ejemplo n.º 1
0
 public NullableInteropOps(Runtime outer, Type type, TypeInfo typeInfo)
     : base(outer, type, typeInfo)
 {
     var elemType = TypeInfo.ExplodeNullableType(type);
     if (elemType == null)
         throw new InvalidOperationException("not a nullable type");
     elemInteropOps = outer.FindInteropOps(elemType);
 }
Ejemplo n.º 2
0
 public DelegateInteropOps(Runtime outer, Type type, TypeInfo typeInfo)
     : base(outer, type, typeInfo)
 {
     var resType = default(Type);
     var argTypes = TypeInfo.ExplodeDelegateType(type, out resType);
     if (argTypes == null)
         throw new InvalidOperationException("not a delegate type");
     argInteropOps = new InteropOps[argTypes.Count];
     for (var i = 0; i < argTypes.Count; i++)
         argInteropOps[i] = outer.FindInteropOps(argTypes[i]);
     resInteropOps = resType == null ? null : outer.FindInteropOps(resType);
     captureThis = typeInfo.CaptureThis;
     inlineParamsArray = typeInfo.InlineParamsArray;
 }