zoukankan      html  css  js  c++  java
  • Extend

        public static class Extend
        {
            public static DateTime Local(this DateTime now)
            {
                return DateTime.Parse(now.ToString("yyyy-MM-dd HH:mm:ss"));
            }
    
    
            public static byte[] ToBin(this object obj)
            {
                return MessagePack.MessagePackSerializer.Serialize(obj.GetType(), obj
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
            }
    
            public static T FromBin<T>(this byte[] bytes)
            {
                ReadOnlyMemory<byte> temp = new ReadOnlyMemory<byte>(bytes);
                return (T)MessagePack.MessagePackSerializer.Deserialize(typeof(T), temp
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
            }
    
            public static T ToObj<T>(this object obj)
            {
                var bytes = MessagePack.MessagePackSerializer.Serialize(obj.GetType(), obj
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
                ReadOnlyMemory<byte> temp = new ReadOnlyMemory<byte>(bytes);
                return (T)MessagePack.MessagePackSerializer.Deserialize(typeof(T), temp
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
            }
    
            /// <summary>
            /// 比较两个对象各属性值是否一样,非对象的Hashcode是否一样
            /// </summary>
            /// <param name="source"></param>
            /// <param name="dest"></param>
            /// <returns></returns>
            public static bool Diff(this object source, object dest)
            {
                var binSource= MessagePack.MessagePackSerializer.Serialize(source.GetType(), source
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
    
                var binDest = MessagePack.MessagePackSerializer.Serialize(dest.GetType(), dest
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
    
                using (var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider())
                {
                    byte[] sourceEncryptdata = md5.ComputeHash(binSource);
                    var sourceStr = System.BitConverter.ToString(sourceEncryptdata);
                    sourceStr = sourceStr.Replace("-", "").ToUpper();
    
                    byte[] destEncryptdata = md5.ComputeHash(binDest);
                    var destStr = System.BitConverter.ToString(destEncryptdata);
                    destStr = destStr.Replace("-", "").ToUpper();
    
                    return sourceStr == destStr;
                }
            }
    
            /// <summary>
            /// 综合对象各属性值,计算其MD5
            /// </summary>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static string Md5(this object obj)
            {
                var bin = MessagePack.MessagePackSerializer.Serialize(obj.GetType(), obj
                    , MessagePack.MessagePackSerializerOptions.Standard
                    .WithResolver(MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.Instance));
    
                using (var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider())
                {
                    byte[] encryptdata = md5.ComputeHash(bin);
                    var str = System.BitConverter.ToString(encryptdata);
                    str = str.Replace("-", "").ToUpper();
    
                    return str;
                }
            }
    
        }
  • 相关阅读:
    一个老码农对职场的思考
    PHP算法 (冒泡 选择排序 折半查找 顺序查找 斐波那契数列 素数 )
    php 图像的基本操作
    php 随机字符串 验证码
    php中 var_dump 和 echo 和 print_r() 和 print
    正则表达式的整理
    php上传文件原理
    git 几个简单命令
    git 几个简单命令
    会话技术Cookie
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/13654739.html
Copyright © 2011-2022 走看看