Hanson.Common.Extensions
1.1.0
.NET 6.0
This package targets .NET 6.0. The package is compatible with this framework or higher.
.NET Core 3.1
This package targets .NET Core 3.1. The package is compatible with this framework or higher.
.NET Framework 4.6.2
This package targets .NET Framework 4.6.2. The package is compatible with this framework or higher.
dotnet add package Hanson.Common.Extensions --version 1.1.0
NuGet\Install-Package Hanson.Common.Extensions -Version 1.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hanson.Common.Extensions" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Hanson.Common.Extensions --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Hanson.Common.Extensions, 1.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Hanson.Common.Extensions as a Cake Addin #addin nuget:?package=Hanson.Common.Extensions&version=1.1.0 // Install Hanson.Common.Extensions as a Cake Tool #tool nuget:?package=Hanson.Common.Extensions&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
README
Hanson.Common.Utils
主要功能
提供 DateTime 相關 Extension
- 字串轉 DateTime
- DateTime 轉 Unix Timestamp (long)
- Unix Timestamp 轉 DateTime
提供 string 相關 Extension
- string 轉 bool
- string 轉 int
- string 轉 double
- string 轉 float
- string 轉 Guid
- string 生成 SHA256
- string 生成 MD5
- string 加密 AES256
- string 解密 AES256
提供 Enum 相關 Extension
- string 轉成 Enum
- 擴充 EnumNameAttribute
- 取得 Description 內容
- 取得 EnumName 內容
提供 byte 相關 Extension
- byte array 轉成 16進制文字
提供 JSON 相關 Extension
- JSON 字串轉成 class
- class 轉成 JSON 字串
提供 XML 相關 Extension
- XML 字串轉成 class
- class 轉成 XML 字串
提供 Regex 相關 Extension
- 檢查字串是否符合 Regex
- 取得符合 Regex 的文字內容
提供 SystemTime 功能
- 指定 Current Time
- 重置 Current Time 改取 DateTime.Now
前置條件
- 開發環境需具備 .Net 6.0 or .Net Core 3.1 or NET 472 or NET 462
- 運行於 Windows Platform (x86, x64)
- 運行於 Linux Platform (x86, x64)
- 運行於 OSX Platform (x64)
- 運行於 Raspberry PI Platform (x86)
安裝方式
- 採用 Nuget 方式進行安裝作業 https://www.nuget.org/packages/Hanson.Common.Extensions/
授權
此專案採用的 License為 Apache-2.0
使用範例
命名空間
using Hanson.Common.Utils;
- DateTime Extension sample
private void Sample()
{
// string 轉成 DateTime
DateTime time = "2024/01/25 08:00:01".ToDateTime();
Console.WriteLine($"string (2024/01/25 08:00:01) => DateTime {time:yyyy-MM-dd HH:mm:ss}");
// 支援不使用分隔符號的 YYYYMMDDHHmmss 格式
time = "20240125080001".ToDateTime();
Console.WriteLine($"string (20240125080001) => DateTime {time:yyyy-MM-dd HH:mm:ss}");
// DateTime 轉成 Unix timestamp
long unix = time.ToUnixTimestamp();
Console.WriteLine($"DateTime ({time}) => Unix timestamp (ms):{unix}");
// Unix timestamp 轉成 DateTime
DateTime unixTime = unix.ToDateTime();
Console.WriteLine($"Unix timestamp ({unix}) => DateTime {time:yyyy-MM-dd HH:mm:ss}");
}
- String Extension Sample
private void Sample()
{
string value;
// string 轉成 bool
value = "true";
Console.WriteLine($"string ({value}) => bool({value.ToBool()})");
// string 轉成 int
value = "100";
Console.WriteLine($"string ({value}) => int({value.ToInt()})");
// string 轉成 float
value = "100.1";
Console.WriteLine($"string ({value}) => float({value.ToFloat()})");
// string 轉成 double
value = "100.001";
Console.WriteLine($"string ({value}) => double({value.ToDouble()})");
// string 轉成 GUID
value = "b8452395-24dc-4015-86f0-9bc44a691a87";
Console.WriteLine($"string ({value}) => GUID:{value.ToGuid()}");
// string 轉成 SHA256
value = "TEST SHA";
Console.WriteLine($"string ({value}) => SHA256:{value.ToSHA256()}");
// string 轉成 MD5
value = "TEST MD5";
Console.WriteLine($"string ({value}) => MD5:{value.ToMD5()}");
// string 加密 AES256
value = "TEST AES256";
Console.WriteLine($"string ({value}) => AES256:{value.ToEncryptAES256("12345678901234567890123456789012")}");
// string 解密 AES256
value = "AM6TpAVEsZnQ1UXRU7OKujR6Kxjbp5qs+uB7RMvvdpM=";
Console.WriteLine($"string ({value}) => AES256:{value.ToEncryptAES256("12345678901234567890123456789012")}");
}
- Byte array Extension Sample
private void Sample()
{
byte[] values = new byte[] { 0x00, 0xAB, 0xFF };
// byte array 轉成 hex string
Console.WriteLine($"bytes ({{ 0x00, 0xAB, 0xFF }}) => 16進制字串 ({values.ToHexString()})");
// byte list 轉成 hex string
Console.WriteLine($"bytes ({{ 0x00, 0xAB, 0xFF }}) => 16進制字串 ({values.ToList().ToHexString()})");
}
- Enum Extension Sample
public enum ForkEnum
{
[EnumName("Name")]
[Description("Test")]
Test
}
private void Sample()
{
ForkEnum value = ForkEnum.Test;
// 取得 EnumName 的內容
Console.WriteLine($"取得 ForkEnum.Test 設定的 Name ({value.GetName()})");
// 取得 Description 的內容
Console.WriteLine($"取得 ForkEnum.Test 設定的 Description ({value.GetDescription()})");
}
- Regex Extension Sample
private void Sample()
{
string pattern = @"^[\w+]*$";
string value = "ABCabc123";
// 檢查字串是否符合 regex
Console.WriteLine($"檢查字串 ({value}) 是否符合 pattern: {value.ValidRegex(pattern)}");
// 取得符合 regex 的字串資訊
RegexValue regex = value.GetRegexValue(pattern);
Console.WriteLine($"取得符合 pattern 的字串: {regex.Value}, 開始位置:{regex.Index}, 長度:{regex.Length}");
}
- XML Extension Sample
public class ForkClass
{
public string Name { get; set; }
public double Age { get; set; }
}
private void Sample()
{
ForkClass value = new ForkClass
{
Name = "Hanson",
Age = 30
};
// 把 Class 轉成 XML 字串
string xmlStr = value.ToXMLSerialize();
Console.WriteLine($"把 Class 轉成 XML 字串: {xmlStr}");
// 把 XML 字串 轉成 Class
ForkClass xmlClass = xmlStr.ToXMLDeserialize<ForkClass>();
Console.WriteLine($"把 XML 字串 轉成 Class Name: {xmlClass.Name}, Age:{xmlClass.Age}");
}
- JSON Extension Sample
public class ForkClass
{
public string Name { get; set; }
public double Age { get; set; }
}
private void Sample()
{
ForkClass value = new ForkClass
{
Name = "Hanson",
Age = 30
};
// 把 Class 轉成 JSON 字串
string jsonStr = value.ToJsonSerialize(Newtonsoft.Json.Formatting.Indented);
Console.WriteLine($"把 Class 轉成 JSON 字串: {jsonStr}");
// 把 JSON 字串 轉成 Class
ForkClass jsonClass = jsonStr.ToJsonDeserialize<ForkClass>();
Console.WriteLine($"把 JSON 字串 轉成 Class Name: {jsonClass.Name}, Age:{jsonClass.Age}");
// 檢查字串是否符合 JSON
Console.WriteLine($"檢查字串 ({jsonStr}) 是否符合 JSON: {jsonStr.ValidJsonFormat()}");
}
- SystemTime Sample
private void Sample()
{
DateTime currentTime = new DateTime(1981, 1, 1);
// 使用指定的系統預設時間
SystemTime.Set(currentTime);
Console.WriteLine($"系統目前時間: {SystemTime.Now()}");
// 使用重置系統預設時間,改用 DateTime.Now
SystemTime.Reset();
Console.WriteLine($"系統目前時間: {SystemTime.Now()}");
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.1 is compatible. |
.NET Framework | net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 3.1
- Hanson.NLog.Config (>= 1.1.0)
- Newtonsoft.Json (>= 13.0.3)
-
.NETFramework 4.6.2
- Hanson.NLog.Config (>= 1.1.0)
- Newtonsoft.Json (>= 13.0.3)
-
.NETFramework 4.7.2
- Hanson.NLog.Config (>= 1.1.0)
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- Hanson.NLog.Config (>= 1.1.0)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on Hanson.Common.Extensions:
Package | Downloads |
---|---|
Hanson.AutoUpdater
Package Description |
|
Hanson.Cache.SQLite
Package Description |
|
Hanson.Common.FileUtils
Package Description |
|
Hanson.Mqtt.Utils
Hanson.Mqtt.Utils 支援項目 1- Broker Server 2- Pub/Sub 功能 |
|
Hanson.Common.ScheduleUtils
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.