public void RegisterIfNecessary(WeChatApiRequest request) { var type = request.GetType(); if (WeChatApis.ContainsKey(type)) { return; } WeChatApis[type] = new WeChatApiEntry(type, request.ApiUriFormat); }
public void Init(IList <Assembly> assemblies) { if (assemblies == null) { throw new ArgumentNullException("assemblies"); } var baseClass = typeof(WeChatApiRequest); var types = assemblies .SelectMany(s => s.GetTypes()) .Where(p => baseClass.IsAssignableFrom(p) && !p.IsGenericType && !p.IsAbstract && !p.IsInterface) .ToArray(); foreach (var type in types) { if (WeChatApis.ContainsKey(type)) { return; } var request = (WeChatApiRequest)Activator.CreateInstance(type); WeChatApis[type] = new WeChatApiEntry(type, request.ApiUriFormat); } }