示例#1
0
        private ProxyProvidedConstructorInfo(RdProvidedConstructorInfo constructorInfo, int typeProviderId,
                                             TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) : base(null, context.Context)
        {
            myConstructorInfo      = constructorInfo;
            myTypeProviderId       = typeProviderId;
            myTypeProvidersContext = typeProvidersContext;
            myContext = context;

            myParameters = new InterruptibleLazy <ProvidedParameterInfo[]>(() =>
                                                                           // ReSharper disable once CoVariantArrayConversion
                                                                           myTypeProvidersContext.Connection
                                                                           .ExecuteWithCatch(() => RdProvidedConstructorInfoProcessModel.GetParameters.Sync(EntityId))
                                                                           .Select(t => ProxyProvidedParameterInfo.Create(t, myTypeProviderId, typeProvidersContext, myContext))
                                                                           .ToArray());

            myGenericArguments = new InterruptibleLazy <ProvidedType[]>(() =>
                                                                        myTypeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(constructorInfo.GenericArguments, myTypeProviderId,
                                                                                                                                   myContext));

            myStaticParameters = new InterruptibleLazy <ProvidedParameterInfo[]>(() =>
                                                                                 // ReSharper disable once CoVariantArrayConversion
                                                                                 myTypeProvidersContext.Connection
                                                                                 .ExecuteWithCatch(() => RdProvidedConstructorInfoProcessModel.GetStaticParametersForMethod.Sync(EntityId))
                                                                                 .Select(t => ProxyProvidedParameterInfo.Create(t, myTypeProviderId, typeProvidersContext, myContext))
                                                                                 .ToArray());

            myCustomAttributes = new InterruptibleLazy <RdCustomAttributeData[]>(() =>
                                                                                 myTypeProvidersContext.ProvidedCustomAttributeProvider.GetCustomAttributes(this));
        }
示例#2
0
 private ProxyProvidedParameterInfo(RdProvidedParameterInfo parameterInfo, int typeProviderId,
                                    TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) : base(null, context.Context)
 {
     myParameterInfo        = parameterInfo;
     myTypeProviderId       = typeProviderId;
     myTypeProvidersContext = typeProvidersContext;
     myContext       = context;
     RawDefaultValue = myParameterInfo.RawDefaultValue.Unbox();
 }
示例#3
0
        private ProxyProvidedFieldInfo(RdProvidedFieldInfo fieldInfo, int typeProviderId,
                                       TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) : base(null, context.Context)
        {
            myFieldInfo            = fieldInfo;
            myTypeProvidersContext = typeProvidersContext;
            myRawConstantValue     = myFieldInfo.RawConstantValue.Unbox();

            myTypes = new InterruptibleLazy <ProvidedType[]>(() =>
                                                             myTypeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(new[] { fieldInfo.DeclaringType, fieldInfo.FieldType },
                                                                                                                        typeProviderId, context));
        }
        public ProxyTypeProvider(RdTypeProvider rdTypeProvider, TypeProvidersContext typeProvidersContext)
        {
            myRdTypeProvider       = rdTypeProvider;
            myTypeProvidersContext = typeProvidersContext;

            // ReSharper disable once CoVariantArrayConversion
            myProvidedNamespaces = new InterruptibleLazy <IProvidedNamespace[]>(
                myTypeProvidersContext.Connection
                .ExecuteWithCatch(() => RdTypeProviderProcessModel.GetProvidedNamespaces.Sync(EntityId, RpcTimeouts.Maximal))
                .Select(t => new ProxyProvidedNamespace(t, myRdTypeProvider.EntityId, myTypeProvidersContext))
                .ToArray());
        }
        public ProxyProvidedNamespace(RdProvidedNamespace providedNamespace, int typeProviderId,
                                      TypeProvidersContext typeProvidersContext)
        {
            myProvidedNamespace = providedNamespace;
            var context = ProvidedTypeContextHolder.Create();

            myNestedNamespaces = new InterruptibleLazy <ProxyProvidedNamespace[]>(() =>
                                                                                  providedNamespace.NestedNamespaces
                                                                                  .Select(t => new ProxyProvidedNamespace(t, typeProviderId, typeProvidersContext))
                                                                                  .ToArray());

            myProvidedTypes =
                new InterruptibleLazy <ProvidedType[]>(() =>
                                                       typeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(providedNamespace.Types, typeProviderId,
                                                                                                                context));
        }
        private ProxyProvidedEventInfo(RdProvidedEventInfo eventInfo, int typeProviderId,
                                       TypeProvidersContext typeProvidersContext,
                                       ProvidedTypeContextHolder context) : base(null, context.Context)
        {
            myEventInfo            = eventInfo;
            myTypeProvidersContext = typeProvidersContext;

            myMethods = new InterruptibleLazy <ProvidedMethodInfo[]>(() =>
                                                                     // ReSharper disable once CoVariantArrayConversion
                                                                     myTypeProvidersContext.Connection.ExecuteWithCatch(() =>
                                                                                                                        typeProvidersContext.Connection.ProtocolModel.RdProvidedMethodInfoProcessModel.GetProvidedMethodInfos
                                                                                                                        .Sync(new[] { eventInfo.AddMethod, eventInfo.RemoveMethod }, RpcTimeouts.Maximal)
                                                                                                                        .Select(t => ProxyProvidedMethodInfo.Create(t, typeProviderId, typeProvidersContext, context))
                                                                                                                        .ToArray()));

            myTypes = new InterruptibleLazy <ProvidedType[]>(() =>
                                                             myTypeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(
                                                                 new[] { eventInfo.DeclaringType, eventInfo.EventHandlerType }, typeProviderId, context));
        }
示例#7
0
        private ProxyProvidedPropertyInfo(RdProvidedPropertyInfo propertyInfo, int typeProviderId,
                                          TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) : base(null, context.Context)
        {
            myPropertyInfo         = propertyInfo;
            myTypeProviderId       = typeProviderId;
            myTypeProvidersContext = typeProvidersContext;
            myContext = context;

            myMethods = new InterruptibleLazy <ProvidedMethodInfo[]>(() =>
                                                                     // ReSharper disable once CoVariantArrayConversion
                                                                     GetMethodsInfos()
                                                                     .Select(t => ProxyProvidedMethodInfo.Create(t, typeProviderId, typeProvidersContext, context))
                                                                     .ToArray());

            myIndexParameters = new InterruptibleLazy <ProvidedParameterInfo[]>(
                () => // ReSharper disable once CoVariantArrayConversion
                propertyInfo.IndexParameters
                .Select(t => ProxyProvidedParameterInfo.Create(t, typeProviderId, typeProvidersContext, context))
                .ToArray());

            myCustomAttributes = new InterruptibleLazy <RdCustomAttributeData[]>(() =>
                                                                                 myTypeProvidersContext.ProvidedCustomAttributeProvider.GetCustomAttributes(this));
        }
 public ProvidedConstructorInfosHost(TypeProvidersContext typeProvidersContext) =>
示例#9
0
 public static ProxyProvidedConstructorInfo Create(RdProvidedConstructorInfo constructorInfo, int typeProviderId,
                                                   TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) =>
 constructorInfo == null
 ? null
 : new ProxyProvidedConstructorInfo(constructorInfo, typeProviderId, typeProvidersContext, context);
示例#10
0
 public ProvidedTypeCreator(TypeProvidersContext typeProvidersContext) :
     base(typeProvidersContext.ProvidedTypesCache) => myTypeProvidersContext = typeProvidersContext;
示例#11
0
 public ProvidedFieldCreator(TypeProvidersContext typeProvidersContext) =>
 public ProvidedParameterCreator(TypeProvidersContext typeProvidersContext) =>
示例#13
0
 public ProvidedConstructorCreator(TypeProvidersContext typeProvidersContext) :
     base(typeProvidersContext.ProvidedConstructorsCache) =>
示例#14
0
 public TypeProvidersHost(TypeProvidersContext typeProvidersContext) =>
示例#15
0
 public static ProxyProvidedFieldInfo Create(RdProvidedFieldInfo fieldInfo, int typeProviderId,
                                             TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) =>
 fieldInfo == null
 ? null
 : new ProxyProvidedFieldInfo(fieldInfo, typeProviderId, typeProvidersContext, context);
示例#16
0
 public ProvidedTypesHost(TypeProvidersContext typeProvidersContext) =>
 public static ProxyProvidedEventInfo Create(RdProvidedEventInfo eventInfo, int typeProviderId,
                                             TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) =>
 eventInfo == null
 ? null
 : new ProxyProvidedEventInfo(eventInfo, typeProviderId, typeProvidersContext, context);
示例#18
0
 public static ProxyProvidedParameterInfo Create(RdProvidedParameterInfo parameter, int typeProviderId,
                                                 TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) =>
 parameter == null
 ? null
 : new ProxyProvidedParameterInfo(parameter, typeProviderId, typeProvidersContext, context);
 public ProvidedNamespaceCreator(TypeProvidersContext typeProvidersContext) =>
示例#20
0
 public static ProxyProvidedPropertyInfo Create(RdProvidedPropertyInfo propertyInfo, int typeProviderId,
                                                TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) =>
 propertyInfo == null
 ? null
 : new ProxyProvidedPropertyInfo(propertyInfo, typeProviderId, typeProvidersContext, context);
示例#21
0
        private ProxyProvidedType(RdOutOfProcessProvidedType rdProvidedType, int typeProviderId,
                                  TypeProvidersContext typeProvidersContext,
                                  ProvidedTypeContextHolder context) : base(null, context.Context)
        {
            myRdProvidedType       = rdProvidedType;
            myTypeProviderId       = typeProviderId;
            myTypeProvidersContext = typeProvidersContext;
            myContext = context;

            myInterfaces = new InterruptibleLazy <ProvidedType[]>(() =>
                                                                  myTypeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(
                                                                      myTypeProvidersContext.Connection.ExecuteWithCatch(() =>
                                                                                                                         RdProvidedTypeProcessModel.GetInterfaces.Sync(EntityId)),
                                                                      typeProviderId, context));

            myGenericArguments = new InterruptibleLazy <ProvidedType[]>(() =>
                                                                        myTypeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(myRdProvidedType.GenericArguments, typeProviderId,
                                                                                                                                   context));

            myMethods = new InterruptibleLazy <ProvidedMethodInfo[]>(() =>
                                                                     // ReSharper disable once CoVariantArrayConversion
                                                                     myTypeProvidersContext.Connection
                                                                     .ExecuteWithCatch(() => RdProvidedTypeProcessModel.GetMethods.Sync(EntityId, RpcTimeouts.Maximal))
                                                                     .Select(t => ProxyProvidedMethodInfo.Create(t, typeProviderId, typeProvidersContext, context))
                                                                     .ToArray());

            myAllNestedTypes = new InterruptibleLazy <ProvidedType[]>(() =>
                                                                      myTypeProvidersContext.ProvidedTypesCache.GetOrCreateBatch(myTypeProvidersContext.Connection.ExecuteWithCatch(
                                                                                                                                     () =>
                                                                                                                                     RdProvidedTypeProcessModel.GetAllNestedTypes.Sync(EntityId, RpcTimeouts.Maximal)), typeProviderId,
                                                                                                                                 context));

            myProperties = new InterruptibleLazy <ProvidedPropertyInfo[]>(() =>
                                                                          // ReSharper disable once CoVariantArrayConversion
                                                                          myTypeProvidersContext.Connection
                                                                          .ExecuteWithCatch(() => RdProvidedTypeProcessModel.GetProperties.Sync(EntityId, RpcTimeouts.Maximal))
                                                                          .Select(t => ProxyProvidedPropertyInfo.Create(t, myTypeProviderId, myTypeProvidersContext, context))
                                                                          .ToArray());

            myStaticParameters = new InterruptibleLazy <ProvidedParameterInfo[]>(() =>
                                                                                 // ReSharper disable once CoVariantArrayConversion
                                                                                 myTypeProvidersContext.Connection
                                                                                 .ExecuteWithCatch(() => RdProvidedTypeProcessModel.GetStaticParameters.Sync(EntityId, RpcTimeouts.Maximal))
                                                                                 .Select(t => ProxyProvidedParameterInfo.Create(t, myTypeProviderId, myTypeProvidersContext, context))
                                                                                 .ToArray());

            myFields = new InterruptibleLazy <ProvidedFieldInfo[]>(() =>
                                                                   // ReSharper disable once CoVariantArrayConversion
                                                                   myTypeProvidersContext.Connection
                                                                   .ExecuteWithCatch(() => RdProvidedTypeProcessModel.GetFields.Sync(EntityId, RpcTimeouts.Maximal))
                                                                   .Select(t => ProxyProvidedFieldInfo.Create(t, myTypeProviderId, typeProvidersContext, context))
                                                                   .ToArray());

            myEvents = new InterruptibleLazy <ProvidedEventInfo[]>(() =>
                                                                   // ReSharper disable once CoVariantArrayConversion
                                                                   myTypeProvidersContext.Connection
                                                                   .ExecuteWithCatch(() => RdProvidedTypeProcessModel.GetEvents.Sync(EntityId, RpcTimeouts.Maximal))
                                                                   .Select(t => ProxyProvidedEventInfo.Create(t, myTypeProviderId, myTypeProvidersContext, context))
                                                                   .ToArray());

            myConstructors = new InterruptibleLazy <ProvidedConstructorInfo[]>(() =>
                                                                               // ReSharper disable once CoVariantArrayConversion
                                                                               myTypeProvidersContext.Connection
                                                                               .ExecuteWithCatch(() => RdProvidedTypeProcessModel.GetConstructors.Sync(EntityId, RpcTimeouts.Maximal))
                                                                               .Select(t => ProxyProvidedConstructorInfo.Create(t, myTypeProviderId, myTypeProvidersContext, context))
                                                                               .ToArray());

            myCustomAttributes = new InterruptibleLazy <RdCustomAttributeData[]>(() =>
                                                                                 myTypeProvidersContext.ProvidedCustomAttributeProvider.GetCustomAttributes(this));

            myMakeArrayTypesCache = new Dictionary <int, ProvidedType>();
            myGenericTypesCache   = new Dictionary <string, ProvidedType>();
        }
 public static ProxyProvidedMethodInfo Create(RdProvidedMethodInfo methodInfo, int typeProviderId,
                                              TypeProvidersContext typeProvidersContext, ProvidedTypeContextHolder context) =>
 methodInfo == null
 ? null
 : new ProxyProvidedMethodInfo(methodInfo, typeProviderId, typeProvidersContext, context);
 public ProvidedEventCreator(TypeProvidersContext typeProvidersContext) =>
示例#24
0
 public ProvidedPropertyCreator(TypeProvidersContext typeProvidersContext) :
     base(typeProvidersContext.ProvidedPropertyCache) =>
示例#25
0
 public static ProxyProvidedType Create(
     RdOutOfProcessProvidedType type,
     int typeProviderId,
     TypeProvidersContext typeProvidersContext,
     ProvidedTypeContextHolder context) =>
 type == null ? null : new ProxyProvidedType(type, typeProviderId, typeProvidersContext, context);
示例#26
0
 public ProvidedMethodCreator(TypeProvidersContext typeProvidersContext) : base(typeProvidersContext
                                                                                .ProvidedMethodsCache) => myTypeProvidersContext = typeProvidersContext;
示例#27
0
 public ProvidedMethodInfosHost(TypeProvidersContext typeProvidersContext) =>
 public ProvidedAssemblyHost(TypeProvidersContext typeProvidersContext) =>
 public ProvidedAssemblyCreator(TypeProvidersContext context) : base(context.ProvidedAssembliesCache)
 {
 }
 public TypeProviderCreator(TypeProvidersContext typeProvidersContext) =>