| 
					
				 | 
			
			
				@@ -481,18 +481,21 @@ namespace Google.Protobuf.Reflection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// dependencies must come before the descriptor which depends on them. (If A depends on B, and B 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// with the order in which protoc provides descriptors to plugins.</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="registry">The extension registry to use when parsing, or null if no extensions are required.</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <returns>The file descriptors corresponding to <paramref name="descriptorData"/>.</returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public static IReadOnlyList<FileDescriptor> BuildFromByteStrings(IEnumerable<ByteString> descriptorData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static IReadOnlyList<FileDescriptor> BuildFromByteStrings(IEnumerable<ByteString> descriptorData, ExtensionRegistry registry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ProtoPreconditions.CheckNotNull(descriptorData, nameof(descriptorData)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var parser = FileDescriptorProto.Parser.WithExtensionRegistry(registry); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // TODO: See if we can build a single DescriptorPool instead of building lots of them. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // This will all behave correctly, but it's less efficient than we'd like. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var descriptors = new List<FileDescriptor>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var descriptorsByName = new Dictionary<string, FileDescriptor>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             foreach (var data in descriptorData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var proto = FileDescriptorProto.Parser.ParseFrom(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var proto = parser.ParseFrom(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var dependencies = new List<FileDescriptor>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 foreach (var dependencyName in proto.Dependency) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -518,6 +521,18 @@ namespace Google.Protobuf.Reflection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return new ReadOnlyCollection<FileDescriptor>(descriptors); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Converts the given descriptor binary data into FileDescriptor objects. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Note: reflection using the returned FileDescriptors is not currently supported. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="descriptorData">The binary file descriptor proto data. Must not be null, and any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// dependencies must come before the descriptor which depends on them. (If A depends on B, and B 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// with the order in which protoc provides descriptors to plugins.</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns>The file descriptors corresponding to <paramref name="descriptorData"/>.</returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static IReadOnlyList<FileDescriptor> BuildFromByteStrings(IEnumerable<ByteString> descriptorData) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BuildFromByteStrings(descriptorData, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// Returns a <see cref="System.String" /> that represents this instance. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </summary> 
			 |