首页 > 其他分享 >.net 两个泛型克隆属性名相同的值

.net 两个泛型克隆属性名相同的值

时间:2024-04-18 11:22:33浏览次数:25  
标签:克隆 itemIn var tIn tOut 泛型 net itemOut

/// <summary>
        /// TIntoTOut
        /// </summary>
        /// <typeparam name="TIn"></typeparam>
        public static TOut ClassToClass<TIn,TOut>(TIn tIn)
        {
            TOut tOut = Activator.CreateInstance<TOut>();
            var tInType = tIn.GetType();
            foreach (var itemOut in tOut.GetType().GetProperties())
            {
                var itemIn = tInType.GetProperty(itemOut.Name);
                if (itemIn != null)
                {
                    itemOut.SetValue(tOut, itemIn.GetValue(tIn));
                }
            }
            return tOut;


        }

  

标签:克隆,itemIn,var,tIn,tOut,泛型,net,itemOut
From: https://www.cnblogs.com/Cabbager/p/18143107

相关文章

  • .NET开源强大、易于使用的缓存框架 - FusionCache
    思维导航前言框架介绍框架主要功能框架源代码框架Packages创建一个控制台应用安装FusionCacheNuget包创建PersonInfo类创建FusionCacheServiceProgram中调用项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言缓存在程序中扮演着提升性能、降低......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    思维导航前言工具介绍支持系统工具源代码工具下载并安装部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推......
  • kubenetes1.26中安装kubesphere3.4版本
    一、安装前环境准备#kubesphere官网:https://kubesphere.io/zh/docs/v3.4/introduction/what-is-kubesphere/#1.kubenetes版本查看[root@masterkubesphere]#kubectlgetnodesNAMESTATUSROLESAGEVERSIONmasterReadycontrol-plane106m......
  • .net 通过特性及继承IValidatableObject完成自定义表单验证
    Model:publicclassPartAItem:IValidatableObject{[Required]publicstringTOKEN{get;set;}[Required]publicstringPROJECT_ID{get;set;}publicstringPART{get;set;}[Required]publicstringFORM_ID{get;set;......
  • 【.NET】利用 IL 魔法实现随心随意的泛型约束
    众所周知,C#只支持对基类/接口/class/struct/new()以及一些IDE魔法的约束,比如这样publicstaticstringTest<T>(Tvalue)whereT:ITest{returnvalue.Test();}publicinterfaceITest{stringTest();}但是如果我们想要随心所欲的约束就不行了publicst......
  • 泛型new()约束
    在C#中,如果你有一个泛型类或方法,且其中需要创建类型T的实例,但是T并没有指定具有无参构造函数(new()约束),那么编译器不会允许你直接使用newT()来创建实例。例如,假设你有以下泛型类:Csharp1publicclassMyClass<T>2{3publicTCreateInstance()4{5//下面这行......
  • 修改kubernetes服务nodeport类型的端口范围
    原文链接编辑kube-apiserver.yaml文件vim/etc/kubernetes/manifests/kube-apiserver.yaml找到–service-cluster-ip-range这一行,在这一行的下一行增加如下内容--service-node-port-range=80-30000实际案例内容如apiVersion:v1kind:Podmetadata:creationTimestamp......
  • .Net6-利用IServiceProvider实现全局依赖注入
    需求背景:自定义类库程序中的类文件引用IService接口对象并实现依赖注入。1.修改应用程序Program.cs文件1varbuilder=WebApplication.CreateBuilder(args);2builder.Services.AddProgramService();345varapp=builder.Build();6InternalApp.ServiceProvider=a......
  • 一个.NET内置依赖注入的小型强化版
    前言.NET生态中有许多依赖注入容器。在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀。外加ASP.NETCore默认使用内置容器,使用很方便。但是笔者在使用中一直有一个头疼的问题:服务工厂无法提供请求的服务类型相关的信息。这在一般情况下并没有影响,但是内置容器支......
  • 深克隆的实现方式
    1.所有对象都实现克隆方法2.通过构造方法实现深克隆3.使用JDK自带的字节流实现深克隆(1)所有对象都实现克隆方法,这种方式需要让所有的引用对象都实现克隆(Cloneable接口)点击查看代码packagecom.clone;publicclassCloneExample{publicstaticvoidmain(Stri......