|  | @@ -885,6 +885,16 @@ namespace Google.Protobuf
 | 
	
		
			
				|  |  |                  return originalName;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#if DOTNET35
 | 
	
		
			
				|  |  | +            // TODO: Consider adding functionality to TypeExtensions to avoid this difference.
 | 
	
		
			
				|  |  | +            private static Dictionary<object, string> GetNameMapping(System.Type enumType) =>
 | 
	
		
			
				|  |  | +                enumType.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static)
 | 
	
		
			
				|  |  | +                    .ToDictionary(f => f.GetValue(null),
 | 
	
		
			
				|  |  | +                                  f => (f.GetCustomAttributes(typeof(OriginalNameAttribute), false)
 | 
	
		
			
				|  |  | +                                        .FirstOrDefault() as OriginalNameAttribute)
 | 
	
		
			
				|  |  | +                                        // If the attribute hasn't been applied, fall back to the name of the field.
 | 
	
		
			
				|  |  | +                                        ?.Name ?? f.Name);
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  |              private static Dictionary<object, string> GetNameMapping(System.Type enumType) =>
 | 
	
		
			
				|  |  |                  enumType.GetTypeInfo().DeclaredFields
 | 
	
		
			
				|  |  |                      .Where(f => f.IsStatic)
 | 
	
	
		
			
				|  | @@ -893,6 +903,7 @@ namespace Google.Protobuf
 | 
	
		
			
				|  |  |                                          .FirstOrDefault()
 | 
	
		
			
				|  |  |                                          // If the attribute hasn't been applied, fall back to the name of the field.
 | 
	
		
			
				|  |  |                                          ?.Name ?? f.Name);
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |