예제 #1
0
        public T Read <T>(ContentManager manager)
        {
            string             name       = ReadString();
            IContentTypeReader typeReader = manager.GetReader(name);

            if (typeReader == null)
            {
                return(default(T));
            }
            return(Read <T>(manager, typeReader));
        }
예제 #2
0
 internal void AddAssembly(Assembly assembly)
 {
     foreach (Type t in assembly.GetTypes())
     {
         if (t.GetInterfaces().Contains(typeof(IContentTypeReader)) && !(t.IsInterface || t.IsAbstract))
         {
             var attr = (ContentTypeReaderAttribute)t.GetCustomAttributes(typeof(ContentTypeReaderAttribute), true).FirstOrDefault();
             if (attr != null)
             {
                 IContentTypeReader reader = Activator.CreateInstance(t) as IContentTypeReader;
                 typeReaders.Add(t.FullName, reader);
                 if (attr.OutputType != null)
                 {
                     typeReadersOutput.Add(attr.OutputType.FullName, reader);
                 }
             }
         }
     }
 }
예제 #3
0
 public T Read <T>(ContentManager manager, IContentTypeReader typeReader)
 {
     return((T)typeReader.Read(manager, this));
 }