public static void Register(string name, Type type, ICustomDeserializer loader = null) { EnsureConfig(); // Default loader if none specified if (loader == null) { loader = new DefaultLoader(); } lock (types) { if (!types.ContainsKey(name)) { types.Add(name, type); } } lock (names) { if (!names.ContainsKey(type)) { names.Add(type, name); } } lock (builders) { if (!builders.ContainsKey(type)) { builders.Add(type, loader); } } }
/// <summary> /// Register a declarative type with the resource loader system. /// </summary> /// <param name="kind">the $kind name to map to this type.</param> /// <param name="type">type of object to create.</param> /// <param name="loader">optional custom deserializer.</param> /// <returns>Resource explorer for fluent style multiple calls.</returns> public ResourceExplorer RegisterType(string kind, Type type, ICustomDeserializer loader = null) { // Default loader if none specified if (loader == null) { loader = new DefaultLoader(); } lock (kinds) { kinds[kind] = type; } lock (names) { names[type] = kind; } lock (builders) { builders[type] = loader; } return(this); }
public static void Register(string name, Type type, ICustomDeserializer loader = null) { EnsureConfig(); // Default loader if none specified if (loader == null) { loader = new DefaultLoader(); } lock (types) { types[name] = type; } lock (names) { names[type] = name; } lock (builders) { builders[type] = loader; } }
public async Task Load() { // Load assembly for factory registration and custom loader if applicable var assembly = Assembly.LoadFrom(info.AssemblyPath); this.Type = assembly.GetTypes().FirstOrDefault(t => t.Name == info.ClassName); this.SchemaUri = info.SchemaUri; if (!string.IsNullOrEmpty(info.CustomLoaderClassName)) { this.Loader = Activator.CreateInstance(assembly.GetType(info.CustomLoaderClassName)) as ICustomDeserializer; } await Task.FromResult <object>(null); return; }
private void RegisterTypeInternal(string kind, Type type, ICustomDeserializer loader = null) { // Default loader if none specified if (loader == null) { loader = new DefaultLoader(); } kindToType[kind] = type; if (!typeToKinds.TryGetValue(type, out List <string> kinds)) { kinds = new List <string>(); } kinds.Add(kind); typeToKinds[type] = kinds; kindDeserializers[kind] = loader; }
/// <summary> /// Register a declarative type with the resource loader system. /// </summary> /// <param name="kind">the $kind name to map to this type.</param> /// <param name="type">type of object to create.</param> /// <param name="loader">optional custom deserializer.</param> /// <returns>Resource explorer for fluent style multiple calls.</returns> public ResourceExplorer RegisterType(string kind, Type type, ICustomDeserializer loader = null) { RegisterComponentTypes(); RegisterTypeInternal(kind, type, loader); return(this); }
/// <summary> /// Register a declarative type with the resource loader system. /// </summary> /// <typeparam name="T">type of object to create.</typeparam> /// <param name="kind">the $kind name to map to this type.</param> /// <param name="loader">optional custom deserializer.</param> /// <returns>Resource explorer for fluent style multiple calls.</returns> public ResourceExplorer RegisterType <T>(string kind, ICustomDeserializer loader = null) { return(RegisterType(kind, typeof(T), loader)); }
public SceneDeserializer WithCustomDeserializer(ICustomDeserializer deserializer) { deserializers.Add(deserializer); return(this); }
internal Excepted SendRequest <Excepted>(string url, MethodsType method = MethodsType.GET, Dictionary <string, string> query = null, object objectToSend = null, ICustomDeserializer <Excepted> customDeserializer = null) { SendRequestAndGetResponse(method, url, query, objectToSend); if (customDeserializer == null) { return(TryGetResponse <Excepted>(client)); } else { return(TryGetResponseWithCustomDeserializer <Excepted>(client, customDeserializer)); } }
Expected TryGetResponseWithCustomDeserializer <Expected>(RestClient rc, ICustomDeserializer <Expected> customDeserializer) { string response = rc.GetResponseToString; return(customDeserializer.Deserialize(response)); }