/// <summary> /// 从组合体中获取指定名称的嵌入的资源 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="assembly"></param> /// <param name="resourceName"></param> /// <returns></returns> public static T GetEmbeddedResource <T>(Assembly assembly, string resourceName) where T : class { string manifestName = GetResourceManifestName(resourceName, assembly); if (string.IsNullOrEmpty(manifestName)) { return(default(T)); } if (typeof(T) == typeof(Stream)) { return(assembly.GetManifestResourceStream(manifestName) as T); } using (Stream st = assembly.GetManifestResourceStream(manifestName)) { st.Position = 0; if (typeof(T) == typeof(string)) { using (StreamReader reader = new StreamReader(st)) { object text = reader.ReadToEnd(); return((T)text); } } else { XmlObjectSerializer serializer = ObjectEx.GetXmlObjectSerializer(typeof(T)); return(serializer.ReadObject(st) as T); } } }