public static void Initialize() { if (s_initialized) throw new InvalidOperationException("NetworkLogFactory is already initialized."); s_initialized = true; var ctorTypes = new[] { typeof(NetworkLogMode) }; var networkLogType = typeof(NetworkLog); var networkLogAttrType = typeof(NetworkLogAttribute); foreach (var type in TypeManager.Types) { if (!type.IsAbstract && type.IsSubclassOf(networkLogType)) { if (type.GetConstructor(ctorTypes) == null) Console.WriteLine("Error: Failed to find .ctor(NetworkLogMode) for class " + type); var attributes = (NetworkLogAttribute[])type.GetCustomAttributes(networkLogAttrType, false); if (attributes.Length != 0) { var wrapper = new NetworkLogWrapper(attributes[0], type); if (s_maxHeaderLength < wrapper.ReqHeaderLength) s_maxHeaderLength = wrapper.ReqHeaderLength; s_logs.Add(wrapper); } } } Console.WriteLine("Loaded {0} network logs", s_logs.Count); s_logs.Sort((x, y) => string.Compare(x.Name, y.Name)); Wrappers = s_logs.ToArray(); // AllFileFiltersReadOnly { int count = 0; var filters = new StringBuilder(); for (int i = 0; i < s_logs.Count; ) { if (!s_logs[i].IsReadOnly) filters.Append(s_logs[i].FileFilter); if (++i != s_logs.Count) filters.Append('|'); ++count; } AllFileFiltersReadOnly = filters.ToString(); AllFileFiltersReadOnlyCount = count; } // AllFileFiltersWithAny { int count = 0; var filters = new StringBuilder(); for (int i = 0; i < s_logs.Count; ++i) { filters.Append(s_logs[i].FileFilter); filters.Append('|'); ++count; } filters.Append(NetworkStrings.AllFiles + " (*.*)|*.*"); ++count; AllFileFiltersWithAny = filters.ToString(); AllFileFiltersWithAnyCount = count; } }
public static void Initialize() { if (s_initialized) { throw new InvalidOperationException("NetworkLogFactory is already initialized."); } s_initialized = true; var ctorTypes = new[] { typeof(NetworkLogMode) }; var networkLogType = typeof(NetworkLog); var networkLogAttrType = typeof(NetworkLogAttribute); foreach (var type in TypeManager.Types) { if (!type.IsAbstract && type.IsSubclassOf(networkLogType)) { if (type.GetConstructor(ctorTypes) == null) { Console.WriteLine("Error: Failed to find .ctor(NetworkLogMode) for class " + type); } var attributes = (NetworkLogAttribute[])type.GetCustomAttributes(networkLogAttrType, false); if (attributes.Length != 0) { var wrapper = new NetworkLogWrapper(attributes[0], type); if (s_maxHeaderLength < wrapper.ReqHeaderLength) { s_maxHeaderLength = wrapper.ReqHeaderLength; } s_logs.Add(wrapper); } } } Console.WriteLine("Loaded {0} network logs", s_logs.Count); s_logs.Sort((x, y) => string.Compare(x.Name, y.Name)); Wrappers = s_logs.ToArray(); // AllFileFiltersReadOnly { int count = 0; var filters = new StringBuilder(); for (int i = 0; i < s_logs.Count;) { if (!s_logs[i].IsReadOnly) { filters.Append(s_logs[i].FileFilter); } if (++i != s_logs.Count) { filters.Append('|'); } ++count; } AllFileFiltersReadOnly = filters.ToString(); AllFileFiltersReadOnlyCount = count; } // AllFileFiltersWithAny { int count = 0; var filters = new StringBuilder(); for (int i = 0; i < s_logs.Count; ++i) { filters.Append(s_logs[i].FileFilter); filters.Append('|'); ++count; } filters.Append(NetworkStrings.AllFiles + " (*.*)|*.*"); ++count; AllFileFiltersWithAny = filters.ToString(); AllFileFiltersWithAnyCount = count; } }