Sfoglia il codice sorgente

1.MimeMapper增加mime类型与扩展名的映射关系
2.Dictionary增加扩展方法

懒得勤快 5 anni fa
parent
commit
af7773dee9

+ 213 - 17
Masuit.Tools.Abstractions.xml

@@ -4,22 +4,6 @@
         <name>Masuit.Tools.Abstractions</name>
         <name>Masuit.Tools.Abstractions</name>
     </assembly>
     </assembly>
     <members>
     <members>
-        <member name="T:Masuit.Tools.Core.Config.ConfigHelper">
-            <summary>
-            .net core的配置导入
-            </summary>
-        </member>
-        <member name="P:Masuit.Tools.Core.Config.ConfigHelper.Configuration">
-            <summary>
-            配置对象
-            </summary>
-        </member>
-        <member name="M:Masuit.Tools.Core.Config.ConfigHelper.AddToMasuitTools(Microsoft.Extensions.Configuration.IConfiguration)">
-            <summary>
-            将配置添加到Masuit.Tools,若未调用,将自动加载默认的appsettings.json
-            </summary>
-            <param name="config"></param>
-        </member>
         <member name="T:Masuit.Tools.Core.ChineseString">
         <member name="T:Masuit.Tools.Core.ChineseString">
             <summary>
             <summary>
             中文字符工具类
             中文字符工具类
@@ -1050,6 +1034,26 @@
             <param name="value">值</param>
             <param name="value">值</param>
             <returns></returns>
             <returns></returns>
         </member>
         </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
+            <summary>
+            添加或更新键值对
+            </summary>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TValue"></typeparam>
+            <param name="this"></param>
+            <param name="that">另一个字典集</param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdateTo``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
+            <summary>
+            添加或更新键值对
+            </summary>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TValue"></typeparam>
+            <param name="this"></param>
+            <param name="that">另一个字典集</param>
+            <returns></returns>
+        </member>
         <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1,System.Func{``0,``1,``1})">
         <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1,System.Func{``0,``1,``1})">
             <summary>
             <summary>
             添加或更新键值对
             添加或更新键值对
@@ -1062,6 +1066,28 @@
             <param name="updateValueFactory">更新时的操作</param>
             <param name="updateValueFactory">更新时的操作</param>
             <returns></returns>
             <returns></returns>
         </member>
         </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1},System.Func{``0,``1,``1})">
+            <summary>
+            添加或更新键值对
+            </summary>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TValue"></typeparam>
+            <param name="this"></param>
+            <param name="that">另一个字典集</param>
+            <param name="updateValueFactory">更新时的操作</param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdateTo``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1},System.Func{``0,``1,``1})">
+            <summary>
+            添加或更新键值对
+            </summary>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TValue"></typeparam>
+            <param name="this"></param>
+            <param name="that">另一个字典集</param>
+            <param name="updateValueFactory">更新时的操作</param>
+            <returns></returns>
+        </member>
         <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1},System.Func{``0,``1,``1})">
         <member name="M:Masuit.Tools.IDictionaryExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1},System.Func{``0,``1,``1})">
             <summary>
             <summary>
             添加或更新键值对
             添加或更新键值对
@@ -1081,6 +1107,48 @@
             <param name="dic"></param>
             <param name="dic"></param>
             <param name="action">回调方法</param>
             <param name="action">回调方法</param>
         </member>
         </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.ToDictionarySafety``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})">
+            <summary>
+            安全的转换成字典集
+            </summary>
+            <typeparam name="TSource"></typeparam>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TElement"></typeparam>
+            <param name="source"></param>
+            <param name="keySelector">键选择器</param>
+            <param name="elementSelector">值选择器</param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.ToConcurrentDictionary``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2})">
+            <summary>
+            安全的转换成字典集
+            </summary>
+            <typeparam name="TSource"></typeparam>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TElement"></typeparam>
+            <param name="source"></param>
+            <param name="keySelector">键选择器</param>
+            <param name="elementSelector">值选择器</param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.AsConcurrentDictionary``2(System.Collections.Generic.Dictionary{``0,``1})">
+            <summary>
+            转换成并发字典集合
+            </summary>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TValue"></typeparam>
+            <param name="dic"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.IDictionaryExtensions.AsDictionary``2(System.Collections.Concurrent.ConcurrentDictionary{``0,``1})">
+            <summary>
+            转换成普通字典集合
+            </summary>
+            <typeparam name="TKey"></typeparam>
+            <typeparam name="TValue"></typeparam>
+            <param name="dic"></param>
+            <returns></returns>
+        </member>
         <member name="M:Masuit.Tools.IEnumerableExtensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
         <member name="M:Masuit.Tools.IEnumerableExtensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
             <summary>
             <summary>
             遍历IEnumerable
             遍历IEnumerable
@@ -3740,6 +3808,128 @@
             裁剪
             裁剪
             </summary>
             </summary>
         </member>
         </member>
+        <member name="T:Masuit.Tools.AspNetCore.Mime.ContentType">
+            <summary>
+            默认MIME映射器,可以根据文件扩展名获取标准内容类型。
+            </summary>
+        </member>
+        <member name="F:Masuit.Tools.AspNetCore.Mime.ContentType.DefaultMime">
+            <summary>
+            默认Mime  - 如果没有找到任何其他映射则作为默认的Mime-Type
+            </summary>
+        </member>
+        <member name="T:Masuit.Tools.AspNetCore.Mime.IMimeMapper">
+            <summary>
+            Mime
+            </summary>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.IMimeMapper.Extend(Masuit.Tools.AspNetCore.Mime.MimeMappingItem[])">
+            <summary>
+            扩展Mime
+            </summary>
+            <param name="extensions"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.IMimeMapper.GetMimeFromExtension(System.String)">
+            <summary>
+            根据扩展名获取mime type
+            </summary>
+            <param name="fileExtension"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.IMimeMapper.GetMimeFromPath(System.String)">
+            <summary>
+            根据路径获取Mime Type
+            </summary>
+            <param name="filePath"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Masuit.Tools.AspNetCore.Mime.MimeMapper">
+            <summary>
+            默认MIME映射器,可以根据文件扩展名获取标准内容类型。
+            </summary>
+        </member>
+        <member name="F:Masuit.Tools.AspNetCore.Mime.MimeMapper.DefaultMime">
+            <summary>
+            默认Mime  - 如果没有找到任何其他映射则作为默认的Mime-Type
+            </summary>
+        </member>
+        <member name="F:Masuit.Tools.AspNetCore.Mime.MimeMapper._pathExtensionPattern">
+            <summary>
+            在文件路径中搜索文件扩展名的默认正则表达式
+            </summary>
+        </member>
+        <member name="P:Masuit.Tools.AspNetCore.Mime.MimeMapper.MimeTypes">
+            <summary>
+            Mime类型与扩展名的映射字典(Content types)
+            </summary>
+        </member>
+        <member name="P:Masuit.Tools.AspNetCore.Mime.MimeMapper.ExtTypes">
+            <summary>
+            mime类型与扩展名的映射关系
+            </summary>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.#ctor">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.#ctor(Masuit.Tools.AspNetCore.Mime.MimeMappingItem[])">
+            <summary>
+            
+            </summary>
+            <param name="extensions"></param>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.Extend(Masuit.Tools.AspNetCore.Mime.MimeMappingItem[])">
+            <summary>
+            扩展mime映射规则的标准列表。扩展的具有更高的优先级 - 如果扩展具有与标准项相同的扩展名,则会覆盖默认的mime
+            </summary>
+            <param name="extensions"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.GetMimeFromExtension(System.String)">
+            <summary>
+            返回特定文件扩展名的Content-Type,如果未找到任何对应关系,则返回默认值
+            </summary>
+            <param name="fileExtension"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.GetExtensionFromMime(System.String)">
+            <summary>
+            返回特定文件扩展名的Content-Type,如果未找到任何对应关系,则返回默认值
+            </summary>
+            <param name="mime"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.GetMimeFromPath(System.String)">
+            <summary>
+            根据路径获取MimeType
+            </summary>
+            <param name="path"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.Tools.AspNetCore.Mime.MimeMapper.GetExtension(System.String)">
+            <summary>
+            获取扩展名
+            </summary>
+            <param name="path"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Masuit.Tools.AspNetCore.Mime.MimeMappingItem">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Masuit.Tools.AspNetCore.Mime.MimeMappingItem.Extension">
+            <summary>
+            扩展名
+            </summary>
+        </member>
+        <member name="P:Masuit.Tools.AspNetCore.Mime.MimeMappingItem.MimeType">
+            <summary>
+            MimeType
+            </summary>
+        </member>
         <member name="T:Masuit.Tools.Models.AddressComponent">
         <member name="T:Masuit.Tools.Models.AddressComponent">
             <summary>
             <summary>
             地理信息成分
             地理信息成分
@@ -5850,7 +6040,7 @@
             <param name="length">指定验证码的长度</param>
             <param name="length">指定验证码的长度</param>
             <returns>验证码字符串</returns>
             <returns>验证码字符串</returns>
         </member>
         </member>
-        <member name="M:Masuit.Tools.Strings.ValidateCode.CreateValidateGraphic(Microsoft.AspNetCore.Http.HttpContext,System.String,System.Int32,System.Int32)">
+        <member name="M:Masuit.Tools.Strings.ValidateCode.CreateValidateGraphic(System.Web.HttpContext,System.String,System.Int32,System.Int32)">
             <summary>
             <summary>
             创建验证码的图片
             创建验证码的图片
             </summary>
             </summary>
@@ -6248,3 +6438,9 @@
         </member>
         </member>
     </members>
     </members>
 </doc>
 </doc>
+iagnostics.Process.Id" /> 属性的 <see cref="P:System.Diagnostics.Process.Handle" />。- 或 -没有与此 <see cref="T:System.Diagnostics.Process" /> 对象关联的进程。- 或 -您正尝试为远程计算机上运行的进程调用 <see cref="M:System.Diagnostics.Process.WaitForExit(System.Int32)" />。此方法仅对本地计算机上运行的进程可用。</exception>
+            <exception cref="T:System.ComponentModel.Win32Exception">未能访问该等待设置。</exception>
+            <exception cref="T:System.Exception">命令参数无效,必须传入一个控制台能被cmd.exe可执行程序; 如:ping 127.0.0.1</exception>
+        </member>
+    </members>
+</doc>

+ 137 - 0
Masuit.Tools.Abstractions/Extensions/BaseType/IDictionaryExtensions.cs

@@ -1,4 +1,5 @@
 using System;
 using System;
+using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
 namespace Masuit.Tools
 namespace Masuit.Tools
@@ -28,6 +29,38 @@ namespace Masuit.Tools
             return @this[key];
             return @this[key];
         }
         }
 
 
+        /// <summary>
+        /// 添加或更新键值对
+        /// </summary>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TValue"></typeparam>
+        /// <param name="this"></param>
+        /// <param name="that">另一个字典集</param>
+        /// <returns></returns>
+        public static void AddOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that)
+        {
+            foreach (var item in that)
+            {
+                AddOrUpdate(@this, item.Key, item.Value);
+            }
+        }
+
+        /// <summary>
+        /// 添加或更新键值对
+        /// </summary>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TValue"></typeparam>
+        /// <param name="this"></param>
+        /// <param name="that">另一个字典集</param>
+        /// <returns></returns>
+        public static void AddOrUpdateTo<TKey, TValue>(this IDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that)
+        {
+            foreach (var item in @this)
+            {
+                AddOrUpdate(that, item.Key, item.Value);
+            }
+        }
+
         /// <summary>
         /// <summary>
         /// 添加或更新键值对
         /// 添加或更新键值对
         /// </summary>
         /// </summary>
@@ -52,6 +85,40 @@ namespace Masuit.Tools
             return @this[key];
             return @this[key];
         }
         }
 
 
+        /// <summary>
+        /// 添加或更新键值对
+        /// </summary>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TValue"></typeparam>
+        /// <param name="this"></param>
+        /// <param name="that">另一个字典集</param>
+        /// <param name="updateValueFactory">更新时的操作</param>
+        /// <returns></returns>
+        public static void AddOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that, Func<TKey, TValue, TValue> updateValueFactory)
+        {
+            foreach (var item in that)
+            {
+                AddOrUpdate(@this, item.Key, item.Value, updateValueFactory);
+            }
+        }
+
+        /// <summary>
+        /// 添加或更新键值对
+        /// </summary>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TValue"></typeparam>
+        /// <param name="this"></param>
+        /// <param name="that">另一个字典集</param>
+        /// <param name="updateValueFactory">更新时的操作</param>
+        /// <returns></returns>
+        public static void AddOrUpdateTo<TKey, TValue>(this IDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that, Func<TKey, TValue, TValue> updateValueFactory)
+        {
+            foreach (var item in @this)
+            {
+                AddOrUpdate(that, item.Key, item.Value, updateValueFactory);
+            }
+        }
+
         /// <summary>
         /// <summary>
         /// 添加或更新键值对
         /// 添加或更新键值对
         /// </summary>
         /// </summary>
@@ -88,5 +155,75 @@ namespace Masuit.Tools
                 action(item.Key, item.Value);
                 action(item.Key, item.Value);
             }
             }
         }
         }
+
+        /// <summary>
+        /// 安全的转换成字典集
+        /// </summary>
+        /// <typeparam name="TSource"></typeparam>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TElement"></typeparam>
+        /// <param name="source"></param>
+        /// <param name="keySelector">键选择器</param>
+        /// <param name="elementSelector">值选择器</param>
+        /// <returns></returns>
+        public static Dictionary<TKey, TElement> ToDictionarySafety<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector)
+        {
+            var dic = new Dictionary<TKey, TElement>();
+            foreach (var item in source)
+            {
+                AddOrUpdate(dic, keySelector(item), elementSelector(item));
+            }
+
+            return dic;
+        }
+
+        /// <summary>
+        /// 安全的转换成字典集
+        /// </summary>
+        /// <typeparam name="TSource"></typeparam>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TElement"></typeparam>
+        /// <param name="source"></param>
+        /// <param name="keySelector">键选择器</param>
+        /// <param name="elementSelector">值选择器</param>
+        /// <returns></returns>
+        public static ConcurrentDictionary<TKey, TElement> ToConcurrentDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector)
+        {
+            var dic = new ConcurrentDictionary<TKey, TElement>();
+            foreach (var item in source)
+            {
+                AddOrUpdate(dic, keySelector(item), elementSelector(item));
+            }
+
+            return dic;
+        }
+
+        /// <summary>
+        /// 转换成并发字典集合
+        /// </summary>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TValue"></typeparam>
+        /// <param name="dic"></param>
+        /// <returns></returns>
+        public static ConcurrentDictionary<TKey, TValue> AsConcurrentDictionary<TKey, TValue>(this Dictionary<TKey, TValue> dic)
+        {
+            var cd = new ConcurrentDictionary<TKey, TValue>();
+            cd.AddOrUpdate(dic);
+            return cd;
+        }
+
+        /// <summary>
+        /// 转换成普通字典集合
+        /// </summary>
+        /// <typeparam name="TKey"></typeparam>
+        /// <typeparam name="TValue"></typeparam>
+        /// <param name="dic"></param>
+        /// <returns></returns>
+        public static Dictionary<TKey, TValue> AsDictionary<TKey, TValue>(this ConcurrentDictionary<TKey, TValue> dic)
+        {
+            var cd = new Dictionary<TKey, TValue>();
+            cd.AddOrUpdate(dic);
+            return cd;
+        }
     }
     }
 }
 }

+ 1 - 0
Masuit.Tools.Abstractions/Masuit.Tools.Abstractions.csproj

@@ -37,6 +37,7 @@
     <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="4.7.0" />
     <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="4.7.0" />
     <PackageReference Include="System.Drawing.Common" Version="4.7.0" />
     <PackageReference Include="System.Drawing.Common" Version="4.7.0" />
     <PackageReference Include="System.Management" Version="4.7.0" />
     <PackageReference Include="System.Management" Version="4.7.0" />
+    <PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
     <PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
     <PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
   </ItemGroup>
   </ItemGroup>
 
 

+ 0 - 0
Masuit.Tools.Core/AspNetCore/Mime/ContentType.cs → Masuit.Tools.Abstractions/Mime/ContentType.cs


+ 0 - 0
Masuit.Tools.Core/AspNetCore/Mime/DefaultMimeItems.cs → Masuit.Tools.Abstractions/Mime/DefaultMimeItems.cs


+ 0 - 0
Masuit.Tools.Core/AspNetCore/Mime/IMimeMapper.cs → Masuit.Tools.Abstractions/Mime/IMimeMapper.cs


+ 27 - 12
Masuit.Tools.Core/AspNetCore/Mime/MimeMapper.cs → Masuit.Tools.Abstractions/Mime/MimeMapper.cs

@@ -1,5 +1,4 @@
 using System.Collections.Generic;
 using System.Collections.Generic;
-using System.Linq;
 using System.Text.RegularExpressions;
 using System.Text.RegularExpressions;
 
 
 namespace Masuit.Tools.AspNetCore.Mime
 namespace Masuit.Tools.AspNetCore.Mime
@@ -20,14 +19,24 @@ namespace Masuit.Tools.AspNetCore.Mime
         private readonly Regex _pathExtensionPattern = new Regex("\\.(\\w*)$");
         private readonly Regex _pathExtensionPattern = new Regex("\\.(\\w*)$");
 
 
         /// <summary>
         /// <summary>
-        /// Mime类型的默认字典(Content types)
+        /// Mime类型与扩展名的映射字典(Content types)
         /// </summary>
         /// </summary>
-        public static Dictionary<string, string> MimeTypes { get; }
+        public static Dictionary<string, string> MimeTypes { get; } = new Dictionary<string, string>();
+
+        /// <summary>
+        /// mime类型与扩展名的映射关系
+        /// </summary>
+        public static Dictionary<string, string> ExtTypes { get; } = new Dictionary<string, string>();
 
 
         static MimeMapper()
         static MimeMapper()
         {
         {
-            MimeTypes = DefaultMimeItems.Items.ToDictionary(item => "." + item.Extension, item => item.MimeType);
+            foreach (var item in DefaultMimeItems.Items)
+            {
+                MimeTypes.AddOrUpdate("." + item.Extension, item.MimeType);
+                ExtTypes.AddOrUpdate(item.MimeType, "." + item.Extension);
+            }
         }
         }
+
         /// <summary>
         /// <summary>
         /// 
         /// 
         /// </summary>
         /// </summary>
@@ -55,14 +64,8 @@ namespace Masuit.Tools.AspNetCore.Mime
             {
             {
                 foreach (var mapping in extensions)
                 foreach (var mapping in extensions)
                 {
                 {
-                    if (MimeTypes.ContainsKey(mapping.Extension))
-                    {
-                        MimeTypes[mapping.Extension] = mapping.MimeType;
-                    }
-                    else
-                    {
-                        MimeTypes.Add(mapping.Extension, mapping.MimeType);
-                    }
+                    MimeTypes.AddOrUpdate(mapping.Extension, mapping.MimeType);
+                    ExtTypes.AddOrUpdate(mapping.MimeType, mapping.Extension);
                 }
                 }
             }
             }
             return this;
             return this;
@@ -80,6 +83,18 @@ namespace Masuit.Tools.AspNetCore.Mime
             return MimeTypes.ContainsKey(fileExtension) ? MimeTypes[fileExtension] : DefaultMime;
             return MimeTypes.ContainsKey(fileExtension) ? MimeTypes[fileExtension] : DefaultMime;
         }
         }
 
 
+        /// <summary>
+        /// 返回特定文件扩展名的Content-Type,如果未找到任何对应关系,则返回默认值
+        /// </summary>
+        /// <param name="mime"></param>
+        /// <returns></returns>
+        public string GetExtensionFromMime(string mime)
+        {
+            mime = (mime ?? string.Empty).ToLower();
+            mime = mime.Trim().StartsWith(".") ? mime.Replace(".", "") : mime;
+            return ExtTypes.ContainsKey(mime) ? ExtTypes[mime] : "";
+        }
+
         /// <summary>
         /// <summary>
         /// 根据路径获取MimeType
         /// 根据路径获取MimeType
         /// </summary>
         /// </summary>

+ 0 - 0
Masuit.Tools.Core/AspNetCore/Mime/MimeMappingItem.cs → Masuit.Tools.Abstractions/Mime/MimeMappingItem.cs


+ 6 - 1
NetCoreTest/Program.cs

@@ -1,4 +1,6 @@
-using Masuit.Tools.Security;
+using Masuit.Tools;
+using Masuit.Tools.AspNetCore.Mime;
+using Masuit.Tools.Security;
 using Microsoft.AspNetCore;
 using Microsoft.AspNetCore;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Hosting;
 using System;
 using System;
@@ -10,6 +12,9 @@ namespace NetCoreTest
     {
     {
         public static void Main(string[] args)
         public static void Main(string[] args)
         {
         {
+            MimeMapper.ExtTypes.AddOrUpdate(MimeMapper.MimeTypes);
+            var type = MimeMapper.ExtTypes.AsConcurrentDictionary()[".jpg"];
+            Console.WriteLine(type);
             var rsaKey = RsaCrypt.GenerateRsaKeys(RsaKeyType.PKCS8, 2048);
             var rsaKey = RsaCrypt.GenerateRsaKeys(RsaKeyType.PKCS8, 2048);
             Console.WriteLine(rsaKey.PrivateKey);
             Console.WriteLine(rsaKey.PrivateKey);
             Console.WriteLine(rsaKey.PublicKey);
             Console.WriteLine(rsaKey.PublicKey);