public SerializationManagerDescr(
     String typeName,
     Type type,
     ObjectAllocator <ISerializable <SerializedType> > allocator)
 {
     __allocator = allocator;
     __instance  = null;
     Type        = type;
     TypeName    = typeName;
 } // End of Custom Constructor
        } // End of Static Constructor

        public SerializationManagerDescr this [String typeName]
        {
            get
            {
                if (String.IsNullOrWhiteSpace(typeName))
                {
                    return(null);
                }

                SerializationManagerDescr retVal;

                if (__serMgrColl.TryGetValue(typeName, out retVal))
                {
                    return(retVal);
                }

                Type type = Type.GetType(typeName);

                if (type == null)
                {
                    return(null);
                }

                ObjectAllocator <ISerializable <SerializedType> > allocator = null;

                if ((allocator = ImplLookForSingleton(type)) == null)
                {
                    allocator = ImplLookForConstructor(type);
                }

                retVal = new SerializationManagerDescr(typeName, type, allocator);

                __serMgrColl.Add(retVal);

                return(retVal);
            }
        }