private static void VerifyType( Type t )
{
bool isItem = t.IsSubclassOf(typeof(Item));
if (isItem || t.IsSubclassOf(typeof(Mobile)))
{
if (isItem)
{
//++m_ItemCount;
Interlocked.Increment(ref m_ItemCount);
}
else
{
//++m_MobileCount;
Interlocked.Increment(ref m_MobileCount);
}
StringBuilder warningSb = null;
try
{
/*
if( isItem && t.IsPublic && !t.IsAbstract )
{
ConstructorInfo cInfo = t.GetConstructor( Type.EmptyTypes );
if( cInfo == null )
{
if (warningSb == null)
warningSb = new StringBuilder();
warningSb.AppendLine(" - No zero paramater constructor");
}
}*/
if (t.GetConstructor(m_SerialTypeArray) == null)
{
if (warningSb == null)
warningSb = new StringBuilder();
warningSb.AppendLine(" - No serialization constructor");
}
if (t.GetMethod("Serialize", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly) == null)
{
if (warningSb == null)
warningSb = new StringBuilder();
warningSb.AppendLine(" - No Serialize() method");
}
if (t.GetMethod("Deserialize", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly) == null)
{
if (warningSb == null)
warningSb = new StringBuilder();
warningSb.AppendLine(" - No Deserialize() method");
}
if (warningSb != null && warningSb.Length > 0)
{
Console.WriteLine("Warning: {0}\n{1}", t, warningSb.ToString());
}
}
catch
{
Console.WriteLine("Warning: Exception in serialization verification of type {0}", t);
}
}
}