コード例 #1
0
        public override void Adicionar(object filho)
        {
            IObjeto objeto = ((IObjeto)filho);

            objeto.Nivel = Nivel + 3;
            objeto.Pai   = this;
            this.Conteudo.AddLast(objeto);
        }
コード例 #2
0
        public void DefinirNovoCurrent(IObjeto noh)
        {
            int novoIndice = 0;

            foreach (var item in Itens)
            {
                if (item == noh)
                {
                    indice = novoIndice; break;
                }
                ; novoIndice++;
            }
        }
コード例 #3
0
        public override void OnExit(MethodExecutionArgs args)
        {
            MethodInfo methodInfo = args.Method as MethodInfo;

            if (Tipo == null)
            {
                Tipo = methodInfo.ReturnType;
            }

            IObjeto objeto = ObjetoFactory.ObtenerObjeto();

            if (objeto.esColeccion(Tipo))
            {
                Tipo        = Type.GetType(objeto.TipoSingular(Tipo));
                EsColeccion = true;
            }

            object instancia = null;

            if (Ensamblado != null)
            {
                if (EsColeccion)
                {
                    instancia = DynamicLoaderManager.ObtenerInstancias(Tipo, Ensamblado);
                }
                else
                {
                    instancia = DynamicLoaderManager.ObtenerInstancia(Tipo, Ensamblado);
                }
            }

            if (instancia == null)
            {
                if (Dominio != null)
                {
                    if (EsColeccion)
                    {
                        instancia = DynamicLoaderManager.ObtenerInstancias(Tipo, Dominio);
                    }
                    else
                    {
                        instancia = DynamicLoaderManager.ObtenerInstancia(Tipo, Dominio);
                    }
                }
            }

            if (instancia == null)
            {
                if (EsColeccion)
                {
                    instancia = DynamicLoaderManager.ObtenerInstancias(Tipo);
                }
                else
                {
                    instancia = DynamicLoaderManager.ObtenerInstancia(Tipo);
                }
            }

            if (instancia != null)
            {
                args.ReturnValue = Convert.ChangeType(instancia, methodInfo.ReturnType);
            }
            else
            {
                args.ReturnValue = Activator.CreateInstance(methodInfo.ReturnType);
            }
        }
コード例 #4
0
 public void Remover(IObjeto objeto) => Negado();