|  | @@ -1,5 +1,4 @@
 | 
	
		
			
				|  |  |  using System.IO;
 | 
	
		
			
				|  |  | -using System.Linq;
 | 
	
		
			
				|  |  |  using Renci.SshNet.Common;
 | 
	
		
			
				|  |  |  using System.Globalization;
 | 
	
		
			
				|  |  |  using Renci.SshNet.Abstractions;
 | 
	
	
		
			
				|  | @@ -31,13 +30,22 @@ namespace Renci.SshNet.Messages
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
		
			
				|  |  |          protected override void WriteBytes(SshDataStream stream)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            var messageAttribute = GetType().GetCustomAttributes<MessageAttribute>(true).FirstOrDefault();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            if (messageAttribute == null)
 | 
	
		
			
				|  |  | -                throw new SshException(string.Format(CultureInfo.CurrentCulture, "Type '{0}' is not a valid message type.", GetType().AssemblyQualifiedName));
 | 
	
		
			
				|  |  | +            var enumerator = GetType().GetCustomAttributes<MessageAttribute>(true).GetEnumerator();
 | 
	
		
			
				|  |  | +            try
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                if (!enumerator.MoveNext())
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    throw new SshException(string.Format(CultureInfo.CurrentCulture, "Type '{0}' is not a valid message type.", GetType().AssemblyQualifiedName));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            stream.WriteByte(messageAttribute.Number);
 | 
	
		
			
				|  |  | -            base.WriteBytes(stream);
 | 
	
		
			
				|  |  | +                var messageAttribute = enumerator.Current;
 | 
	
		
			
				|  |  | +                stream.WriteByte(messageAttribute.Number);
 | 
	
		
			
				|  |  | +                base.WriteBytes(stream);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            finally
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                enumerator.Dispose();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          internal byte[] GetPacket(byte paddingMultiplier, Compressor compressor)
 | 
	
	
		
			
				|  | @@ -155,12 +163,20 @@ namespace Renci.SshNet.Messages
 | 
	
		
			
				|  |  |          /// </returns>
 | 
	
		
			
				|  |  |          public override string ToString()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            var messageAttribute = GetType().GetCustomAttributes<MessageAttribute>(true).SingleOrDefault();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            if (messageAttribute == null)
 | 
	
		
			
				|  |  | -                return string.Format(CultureInfo.CurrentCulture, "'{0}' without Message attribute.", GetType().FullName);
 | 
	
		
			
				|  |  | +            var enumerator = GetType().GetCustomAttributes<MessageAttribute>(true).GetEnumerator();
 | 
	
		
			
				|  |  | +            try
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                if (!enumerator.MoveNext())
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    return string.Format(CultureInfo.CurrentCulture, "'{0}' without Message attribute.", GetType().FullName);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            return messageAttribute.Name;
 | 
	
		
			
				|  |  | +                return enumerator.Current.Name;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            finally
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                enumerator.Dispose();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /// <summary>
 |