From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。

---
 HotelPms.Share/Util/ObjectEx.cs |  135 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 135 insertions(+), 0 deletions(-)

diff --git a/HotelPms.Share/Util/ObjectEx.cs b/HotelPms.Share/Util/ObjectEx.cs
new file mode 100644
index 0000000..9d1bbbe
--- /dev/null
+++ b/HotelPms.Share/Util/ObjectEx.cs
@@ -0,0 +1,135 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using System.Data;
+using System.Reflection;
+using System.Text;
+
+namespace HotelPms.Share.Util
+{
+    public static class ObjectEx
+    {
+         public enum Days
+         {
+            [Description("小木ですよ、 -~\"#$%#%$#\"===")]
+            Sun,
+            [Description("今天星期一 猴子穿新衣")]
+            Mon,
+            [Description("今天星期二 猴子肚子餓")]
+            Tue,
+            [Description("今天星期三 猴子去爬山")]
+            Wed,
+            [Description("今天星期四 猴子去考試")]
+            Thu,
+            [Description("今天星期五 猴子去跳舞")]
+            Fri,
+            [Description("今天星期六 猴子去斗六")]
+            Sat,
+            Inter,
+         }
+
+    /// <summary>
+    /// 返回枚举类型的注释
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// 例:
+    /// public enum Days
+    /// {
+    ///    [Description("小木ですよ、 -~\"#$%#%$#\"===")]
+    ///    Sun,
+    ///    [Description("今天星期一 猴子穿新衣")]
+    ///    Mon,
+    ///    [Description("今天星期二 猴子肚子餓")]
+    ///    Tue,
+    ///    [Description("今天星期三 猴子去爬山")]
+    ///    Wed,
+    ///    [Description("今天星期四 猴子去考試")]
+    ///    Thu,
+    ///    [Description("今天星期五 猴子去跳舞")]
+    ///    Fri,
+    ///    [Description("今天星期六 猴子去斗六")]
+    ///    Sat,
+    ///    Inter,
+    /// }
+    /// <param name="source"></param>
+    /// <returns></returns>
+    public static string ToDescription<T>(this T source) where T : Enum
+    {
+            try
+            {
+                FieldInfo fi = source.GetType().GetField(source.ToString());
+                DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
+                if (attributes != null && attributes.Length > 0) { return attributes[0].Description; } else { return source.ToString(); }
+            }
+            catch
+            {
+                return string.Empty;
+            }
+        }
+
+        /// <summary>
+        /// 任意オブジェクトのAttribute取得
+        /// </summary>
+        /// <param name="source"></param>
+        /// <returns></returns>
+        public static string GetDisplayName<T>(this T source, string property) where T : class
+        {
+            try
+            {
+                PropertyInfo p = source.GetType().GetProperty(property);
+                DisplayAttribute[] attributes = (DisplayAttribute[])p.GetCustomAttributes(typeof(DisplayAttribute), false);
+                if (attributes != null && attributes.Length > 0) { return attributes[0].Name; } else { return string.Empty; }
+            }
+            catch
+            {
+                return string.Empty;
+            }
+        }
+
+        /// <summary>
+        /// 任意オブジェクトのハンドル取得
+        /// </summary>
+        /// <param name="source"></param>
+        /// <returns></returns>
+        public static long ToHandle64<T>(this T source) where T : class
+        {
+            try
+            {
+                return source.GetType().TypeHandle.Value.ToInt64();
+            }
+            catch
+            {
+                return 0;
+            }
+        }
+
+        /// <summary>
+        /// Null判断
+        /// </summary>
+        /// <param name="dataReader"></param>
+        /// <param name="columnName"></param>
+        /// <returns></returns>
+        public static bool IsNull(this IDataReader dataReader, string columnName)
+        {
+            return dataReader[columnName] == DBNull.Value;
+        }
+
+        //public static T ToInstance<T>(long handle) where T : class
+        //{
+        //    try
+        //    {
+        //        unsafe
+        //        {
+        //            IntPtr ptr = new IntPtr(handle);
+        //            Object obj = Pointer.Box((void*)ptr, typeof(T));
+        //            return obj as T;
+        //        }
+        //    }
+        //    catch
+        //    {
+        //        return default(T);
+        //    }
+        //}
+    }
+}

--
Gitblit v1.10.0