Missing random files while serializing nested classes

One more post aimed at solving the mystery of a strange error message.  The situation is as follows:  A public class is defined so as to include a nested class.  Within the public class, a method is defined that XML serializes the nested client, the reason being to convert the nested object into a string that can be passed across a service boundary.  The code for the class ressembles the following:

public class OuterClass
{
   class InnerClass
   {
      private string innerProperty;
      public string InnerProperty
      {
         get { return outerProperty; }
         set { outerProperty = value; }
      }
   }

   public void SerializeThis()
   {
     
try
      {
         XmlSerializer s = new XmlSerializer(typeof(OuterClass.InnerClass));
         Console.WriteLine("Serializer created");
      }
      catch (Exception ex)
      {
         Console.WriteLine("Serializer not created: " + ex.Message);
      }
     
finally
      {
         Console.ReadLine();
      }
   }
}

When the SerializeThis method is executed, an exception is thrown when the XmlSerializer is instantiated, specifically a FileNotFoundException with a message of "File or assembly name hzi9lzkp.dll, or one of its dependencies, was not found."  Not an exceptionally helpful message, when it comes to figuring out what's going wrong. 

As it turns out, the problem is that the InnerClass class is not exposed as a public class.  Once that is done, the exception disappears and the serialization works as expected.