zoukankan      html  css  js  c++  java
  • 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)

    1)Type.IsGenericType类似属性变更

    以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断:

      

     以下是.net core(netstandard1.5)中Type抽象类中泛型类型的属性:

    可见Type类型中的IsGenericType(),IsGenericTypeDefinition()都被取消了,因此,如下.net framework 4.5.2中的代码:

        private static T ChangeType<T>(string value)
        {
            var t = typeof(T);
    
            // getting error here at t.IsGenericType
            if (t.IsGenericType && t.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
            {
                if (value == null)
                {
                    return default(T);
                }
    
                t = Nullable.GetUnderlyingType(t);
            }
    
            return (T)Convert.ChangeType(value, t);
        }

    在.net core(netstandard1.5)重构中只能以如下方式实现:

        private static T ChangeType<T>(string value)
        {
            var t = typeof(T);
    
            // changed t.IsGenericType to t.GetTypeInfo().IsGenericType
            if (t.GetTypeInfo().IsGenericType && t.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
            {
                if (value == null)
                {
                    return default(T);
                }
    
                t = Nullable.GetUnderlyingType(t);
            }
    
            return (T)Convert.ChangeType(value, t);
        }

    查看TypeInfo抽象类能看到如下抽象属性:

    同理,类似的还有类似IsValueType等属性的判断,都从Type抽象类中移到了TypeInfo抽象类中。

    2)Serializable特性变更

    根据其它帖子,该特性位置变更,可以导入如下程序集解决:

    解决方式:添加

    "System.Runtime.Serialization.Formatters": "4.0.0-rc3-24113-00"

    程序包

  • 相关阅读:
    FAST特征点检测算法
    ORB算法介绍(转)
    centos 安装MATLAB :设置回环设备失败: 没有那个文件或目录
    特征检测和特征匹配方法
    摄像机标定-- 张正友标定推导详解
    sublime text plugins
    使用Sublime Text搭建python调试环境[转]
    python OS 模块
    python 守护进程,监控进程
    python 带正则的search 模块
  • 原文地址:https://www.cnblogs.com/you-you-111/p/6141019.html
Copyright © 2011-2022 走看看