Esempio n. 1
0
 public static void Deserialize(byte[] buffer, long ofs, object graph)
 {
     if (ListUtils.IsNullOrEmpty <byte>(buffer))
     {
         throw new ArgumentException();
     }
     FixedLengthFormatter.Deserialize(Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0), ofs, graph);
 }
Esempio n. 2
0
 protected virtual object Resolve(Type clazz, bool alloc, params Type[] exceptive)
 {
     if (clazz != null)
     {
         if (!alloc && Container.FirstOrDefault((s) => clazz.IsInstanceOfType(s)) != null)
         {
             return(null);
         }
         if (clazz.IsInterface)
         {
             var assembly = clazz.Assembly;
             var types    = assembly.GetExportedTypes();
             return(Resolve(types.FirstOrDefault((i) => !i.IsInterface && clazz.IsAssignableFrom(i)), alloc));
         }
         else
         {
             var ctors = clazz.GetConstructors();
             if (ctors.Length > 0)
             {
                 var service = typeof(IoC);
                 for (int i = 0; i < ctors.Length; i++)
                 {
                     var ctor    = ctors[i];
                     var args    = ctor.GetParameters();
                     var success = true;
                     for (int j = 0; j < args.Length; j++)
                     {
                         if (!ListUtils.IsNullOrEmpty <Type>(exceptive))
                         {
                             success = exceptive.FirstOrDefault((s) => s.IsAssignableFrom(args[j].ParameterType)) != null;
                         }
                         else
                         {
                             success = service.IsAssignableFrom(args[j].ParameterType);
                         }
                         if (!success)
                         {
                             break;
                         }
                     }
                     if (success)
                     {
                         return(Resolve(ctor, alloc));
                     }
                 }
             }
         }
     }
     return(null);
 }
Esempio n. 3
0
        public string Format(params string[] args)
        {
            if (ListUtils.IsNullOrEmpty <string>(args))
            {
                return(null);
            }
            string value = this.KeyName;

            for (int i = 0; i < args.Length; i++)
            {
                value += string.Format("-{0}", args[i]);
            }
            return(value);
        }