private Type GetConcreteType(Item item)
        {
            var args = new ConcreteTypeNeededEventArgs(item);

            ConcreteTypeNeeded(this, args);
            return(args.ConcreteType);
        }
        private void Resolver_ConcreteTypeNeeded(object sender, ConcreteTypeNeededEventArgs args)
        {
            Type concreteType = GetConcreteFieldTypeFromItem(args.Item);

            if (concreteType != null)
            {
                args.ConcreteType = concreteType;
            }
        }