Beispiel #1
0
        public void RegisterIfNecessary(WeChatApiRequest request)
        {
            var type = request.GetType();

            if (WeChatApis.ContainsKey(type))
            {
                return;
            }
            WeChatApis[type] = new WeChatApiEntry(type, request.ApiUriFormat);
        }
Beispiel #2
0
        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);
            }
        }