private static IRegistrationBuilder<object, IConcreteActivatorData, SingleRegistrationStyle> ApplyResolver(ContainerBuilder builder, DynamicResolver resolver)
 {
     return builder.Register(ctx => resolver.FactoryFunc());
 }
 private static ComponentRegistration<object> ApplyResolver(ComponentRegistration<object> registration, DynamicResolver resolver)
 {
     return registration.UsingFactoryMethod(resolver.FactoryFunc);
 }
Example #3
0
        ConstraintsViolationException ValidateObjectField(string key,
                                                          object value,
                                                          State state,
                                                          JsonSchemaRegistory reg)
        {
            var matched = false;

            if (_schema._dynamicResolverTag != null)
            {
                Type dynElemType;
                if (DynamicResolver.Find(_schema._dynamicResolverTag, key, out dynElemType))
                {
                    var dynElemSchema = JsonSchemaAttribute.CreateFromType(dynElemType, reg, true);
                    var ex            = dynElemSchema.Validate(value, state, reg);

                    if (ex != null)
                    {
                        return(new ConstraintsViolationException("DynamicResolver", ex));
                    }
                }
            }

            if (_schema.Properties != null)
            {
                JsonSchemaAttribute itemSchema = null;
                if (_schema.Properties.TryGetValue(key, out itemSchema))
                {
                    matched = true;

                    var ex = itemSchema.Validate(value, state, reg);
                    if (ex != null)
                    {
                        return(new ConstraintsViolationException("Property", ex));
                    }
                }
            }

            if (_schema.PatternProperties != null)
            {
                foreach (var pprop in _schema.PatternProperties)
                {
                    if (Regex.IsMatch(key, pprop.Key))
                    {
                        matched = true;

                        var ex = pprop.Value.Validate(value, state, reg);
                        if (ex != null)
                        {
                            return(new ConstraintsViolationException("PatternProperties", ex));
                        }
                    }
                }
            }

            if (_schema.AdditionalProperties != null && !matched)
            {
                var ex = _schema.AdditionalProperties.Validate(value, state, reg);
                if (ex != null)
                {
                    return(new ConstraintsViolationException("AdditionalProperties", ex));
                }
            }

            return(null);
        }
Example #4
0
 public void Register <T>(Func <T> builder)
 {
     _bindings[typeof(T)] = new DynamicResolver <T>(builder);
 }
Example #5
0
 static Resolver()
 {
     // A example for registration of resolvers!
     DynamicResolver.Register <Resolver>("a", typeof(SomeObject));
 }
 private static LambdaInstance<object> ApplyResolver(GenericFamilyExpression builder, DynamicResolver resolver)
 {
     return builder.Add(c => resolver.FactoryFunc());
 }
Example #7
0
 static Resolver()
 {
     // A example for registration of resolvers
     DynamicResolver.Register <Resolver>("b", typeof(int));
 }
Example #8
0
 private static ComponentRegistration <object> ApplyResolver(ComponentRegistration <object> registration, DynamicResolver resolver)
 {
     return(registration.UsingFactoryMethod(resolver.FactoryFunc));
 }
Example #9
0
 public static void RegisterExtension(string name, Type type)
 {
     DynamicResolver.Register <ExtensionsResolverTag>(name, type);
 }
Example #10
-1
        private bool Update2(PermissionSetTriple currentTriple, FrameSecurityDescriptorWithResolver fsdWithResolver)
        {
            DynamicResolver resolver        = fsdWithResolver.Resolver;
            CompressedStack securityContext = resolver.GetSecurityContext();

            securityContext.CompleteConstruction(null);
            return(this.Update(currentTriple, securityContext.PLS));
        }
Example #11
-1
        private static bool CheckDynamicMethodHelper(DynamicResolver dynamicResolver, IPermission demandIn, PermissionToken permToken, RuntimeMethodHandleInternal rmh)
        {
            CompressedStack securityContext = dynamicResolver.GetSecurityContext();

            try
            {
                return(securityContext.CheckDemandNoHalt((CodeAccessPermission)demandIn, permToken, rmh));
            }
            catch (SecurityException ex)
            {
                throw new SecurityException(Environment.GetResourceString("Security_AnonymouslyHostedDynamicMethodCheckFailed"), (Exception)ex);
            }
        }
Example #12
-1
        private static bool CheckDynamicMethodSetHelper(DynamicResolver dynamicResolver, PermissionSet demandSet, out PermissionSet alteredDemandSet, RuntimeMethodHandleInternal rmh)
        {
            CompressedStack securityContext = dynamicResolver.GetSecurityContext();

            try
            {
                return(securityContext.CheckSetDemandWithModificationNoHalt(demandSet, out alteredDemandSet, rmh));
            }
            catch (SecurityException ex)
            {
                throw new SecurityException(Environment.GetResourceString("Security_AnonymouslyHostedDynamicMethodCheckFailed"), (Exception)ex);
            }
        }
Example #13
-1
        public void PassTest()
        {
            Type ty;

            Assert.False(DynamicResolver.Find <Tag>("a", out ty));

            DynamicResolver.Register <Tag>("a", typeof(int));
            DynamicResolver.Register <Tag>("b", typeof(string));

            Assert.True(DynamicResolver.Find <Tag>("a", out ty));
            Assert.True(DynamicResolver.Find <Tag>("b", out ty));
            Assert.False(DynamicResolver.Find <Tag>("c", out ty));

            DynamicResolver.DeRegister <Tag>("b");

            Assert.True(DynamicResolver.Find <Tag>("a", out ty));
            Assert.False(DynamicResolver.Find <Tag>("b", out ty)); // "b" is unregisterd

            DynamicResolver.DeRegister <Tag>();

            Assert.False(DynamicResolver.Find <Tag>("a", out ty)); // All keys for Tag are unregisterd
        }