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); }
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); }
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); }