public UHTModuleInfo(SerializationInfo Info, StreamingContext Context)
 {
     ModuleName                  = Info.GetString("mn");
     ModuleDirectory             = Info.GetString("md");
     ModuleType                  = Info.GetString("mt");
     PublicUObjectClassesHeaders = (List <FileItem>)Info.GetValue("cl", typeof(List <FileItem>));
     PublicUObjectHeaders        = (List <FileItem>)Info.GetValue("pu", typeof(List <FileItem>));
     PrivateUObjectHeaders       = (List <FileItem>)Info.GetValue("pr", typeof(List <FileItem>));
     PCH = Info.GetString("pc");
     GeneratedCPPFilenameBase = Info.GetString("ge");
     GeneratedCodeVersion     = (EGeneratedCodeVersion)Info.GetInt32("gv");
 }
 public UHTModuleInfo(SerializationInfo Info, StreamingContext Context)
 {
     ModuleName                  = Info.GetString("mn");
     ModuleDirectory             = Info.GetString("md");
     ModuleType                  = Info.GetString("mt");
     PublicUObjectClassesHeaders = (List<FileItem>)Info.GetValue("cl", typeof(List<FileItem>));
     PublicUObjectHeaders        = (List<FileItem>)Info.GetValue("pu", typeof(List<FileItem>));
     PrivateUObjectHeaders       = (List<FileItem>)Info.GetValue("pr", typeof(List<FileItem>));
     PCH                         = Info.GetString("pc");
     GeneratedCPPFilenameBase    = Info.GetString("ge");
     GeneratedCodeVersion        = (EGeneratedCodeVersion)Info.GetInt32("gv");
 }
		/// <summary>
		/// If any of this module's source files contain UObject definitions, this will return those header files back to the caller
		/// </summary>
		/// <returns>
		public UHTModuleInfoCacheType GetCachedUHTModuleInfo(EGeneratedCodeVersion GeneratedCodeVersion)
		{
			if (UHTModuleInfoCache == null)
			{
				IEnumerable<string> HeaderFilenames = Directory.GetFiles(ModuleDirectory.FullName, "*.h", SearchOption.AllDirectories);
				UHTModuleInfo Info = ExternalExecution.CreateUHTModuleInfo(HeaderFilenames, Name, ModuleDirectory, Type, GeneratedCodeVersion);
				UHTModuleInfoCache = new UHTModuleInfoCacheType(Info.PublicUObjectHeaders.Concat(Info.PublicUObjectClassesHeaders).Concat(Info.PrivateUObjectHeaders).Select(x => x.AbsolutePath).ToList(), Info);
			}

			return UHTModuleInfoCache;
		}