internal void AddFile(FileDescriptorProto fileDescriptor) { if (_filesByName.ContainsKey(fileDescriptor.Name)) { return; } _filesByName.Add(fileDescriptor.Name, fileDescriptor); foreach (var dependency in fileDescriptor.GetDependencies()) { AddFile(dependency); } foreach (var enumeration in fileDescriptor.EnumTypes) { AddEnum(enumeration); } foreach (var message in fileDescriptor.MessageTypes) { AddMessage(message); } foreach (var service in fileDescriptor.Services) { AddService(service); } }