示例#1
0
        public Key?Get(TypeInfo parameter)
        {
            var root = _root.Get(parameter);
            var type = _type.Get(parameter);

            var result = root.HasValue || type.HasValue
                                             ? new Key(root?.Name ?? type?.Name ?? parameter.Name,
                                                       root?.Identifier ?? type?.Identifier)
                                             : default;

            return(result);
        }
示例#2
0
 public IEnumerable <KeyValuePair <TypeInfo, IIdentity> > Get(IEnumerable <TypeInfo> parameter)
 {
     foreach (var type in parameter.SelectMany(_types).Distinct())
     {
         var key = _identity.Get(type);
         if (key != null)
         {
             var identifier = key.Value.Identifier.NullIfEmpty() ?? _formatter.Get(type);
             var name       = key.Value.Name.NullIfEmpty() ?? type.Name;
             var identity   = _store.Get(name, identifier);
             yield return(Pairs.Create(type, identity));
         }
     }
 }
示例#3
0
 public Key?Get(TypeInfo parameter) => _root.Get(parameter) ?? _type.Get(parameter);