当前位置: 首页>>代码示例>>C#>>正文


C# StackTrace.GetManifestResourceStream方法代码示例

本文整理汇总了C#中System.Diagnostics.StackTrace.GetManifestResourceStream方法的典型用法代码示例。如果您正苦于以下问题:C# StackTrace.GetManifestResourceStream方法的具体用法?C# StackTrace.GetManifestResourceStream怎么用?C# StackTrace.GetManifestResourceStream使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Diagnostics.StackTrace的用法示例。


在下文中一共展示了StackTrace.GetManifestResourceStream方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RegistDLL

 /// <summary> 注册资源中的dll
 /// </summary>
 /// <param name="pattern">*表示连续的未知字符,_表示单个未知字符,如*.dll</param>
 public static void RegistDLL(string pattern = "*.dll")
 {
     System.IO.Directory.GetFiles("", "");
     //获取调用者的程序集
     var ass = new StackTrace(0).GetFrame(1).GetMethod().Module.Assembly;
     //判断程序集是否已经处理
     if (Assemblies.ContainsKey(ass.FullName))
     {
         return;
     }
     //程序集加入已处理集合
     Assemblies.Add(ass.FullName, null);
     //绑定程序集加载失败事件(这里我测试了,就算重复绑也是没关系的)
     AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;
     //获取所有资源文件文件名
     var res = ass.GetManifestResourceNames();
     var regex = new Regex("^" + pattern.Replace(".", "\\.").Replace("*", ".*").Replace("_", ".") + "$", RegexOptions.IgnoreCase);
     foreach (var r in res)
     {
         //如果是dll,则加载
         if (regex.IsMatch(r))
         {
             try
             {
                 var s = ass.GetManifestResourceStream(r);
                 var bts = new byte[s.Length];
                 s.Read(bts, 0, (int)s.Length);
                 var da = Assembly.Load(bts);
                 //判断是否已经加载
                 if (LoadedDlls.ContainsKey(da.FullName))
                 {
                     continue;
                 }
                 LoadedDlls[da.FullName] = da;
             }
             catch
             {
                 //加载失败就算了...
             }
         }
     }
 }
开发者ID:GitHubxsy,项目名称:ChangeDicomTag,代码行数:45,代码来源:LoadResourceDll.cs

示例2: RegistDLL

 /// <summary> 注册资源中的dll
 /// </summary>
 public static void RegistDLL()
 {
     //获取调用者的程序集
     var ass = new StackTrace(0).GetFrame(1).GetMethod().Module.Assembly;
     //判断程序集是否已经处理
     if (Assemblies.ContainsKey(ass.FullName))
     {
         return;
     }
     //程序集加入已处理集合
     Assemblies.Add(ass.FullName, null);
     //绑定程序集加载失败事件(这里我测试了,就算重复绑也是没关系的)
     AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;
     //获取所有资源文件文件名
     var res = ass.GetManifestResourceNames();
     foreach (var r in res)
     {
         //如果是dll,则加载
         if (r.EndsWith(".dll", StringComparison.OrdinalIgnoreCase))
         {
             try
             {
                 var s = ass.GetManifestResourceStream(r);
                 var bts = new byte[s.Length];
                 s.Read(bts, 0, (int)s.Length);
                 var da = Assembly.Load(bts);
                 //判断是否已经加载
                 if (Dlls.ContainsKey(da.FullName))
                 {
                     continue;
                 }
                 Dlls[da.FullName] = da;
             }
             catch
             {
                 //加载失败就算了...
             }
         }
     }
 }
开发者ID:JBTech,项目名称:Dot.Utility,代码行数:42,代码来源:DllPackageHelper.cs


注:本文中的System.Diagnostics.StackTrace.GetManifestResourceStream方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。