首页 > 编程语言 >从C#接口的属性获取多个实现类中字段的值

从C#接口的属性获取多个实现类中字段的值

时间:2024-02-22 15:01:53浏览次数:26  
标签:类中字 name C# void List 接口 ls public string

        private List<string> GetImplName()
        {
            List<string> ls = new List<string>();

            var types = AppDomain.CurrentDomain.GetAssemblies()
                        .SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IBaseContainer))))
                        .ToArray();
            foreach (var v in types)
            {
                object ct = Activator.CreateInstance(v);
                string name = (string)v.GetProperty("Name").GetValue(ct, null);
                ls.Add($"{name}");
            }
            return ls;
        }
    public interface IBaseContainer
    {
        /// <summary>
        /// 类型名字,属性访问器,访问实现类中的_name字段
        /// </summary>
        string Name { get; }

        /// <summary>
        /// 数据保存
        /// </summary>
        void Save();
        /// <summary>
        /// 数据组合构建
        /// </summary>
        void DataBuild(SlnClass slnClass);
    }
    public class DMImpl : IBaseContainer
    {
        private string _name = "DM";

        public string Name => _name;

        public void DataBuild(SlnClass slnClass)
        {
            throw new NotImplementedException();
        }

        public void Save()
        {
            throw new NotImplementedException();
        }

    }

 

标签:类中字,name,C#,void,List,接口,ls,public,string
From: https://www.cnblogs.com/myloveblogs/p/18027360

相关文章

  • 在k8S中,使用kubectl logs无法查看日志是什么原因,如何让其能够查看?
    在Kubernetes(k8S)中,使用kubectllogs命令无法查看Pod日志的原因可能有多种。以下是一些常见原因及其相应的排查和解决方法:Pod状态问题:检查Pod是否处于Running状态。如果Pod处于Pending、CrashLoopBackOff或其他非运行状态,日志可能无法获取。确保Pod正常启......
  • (自用笔记)Word Embedding原理和Pytorch实现
    参考:(1)从WordEmbedding到Bert模型—自然语言处理中的预训练技术发展史-知乎(zhihu.com)(2)吴恩达深度学习(3)deep_thoughts老师的原理和代码讲解:https://space.bilibili.com/373596439越是底层的特征越是所有不论什么领域的图像都会具备的比如边角线弧线等底层基础特征,越往上......
  • 使用注解@Async实现异步执行未生效的解决办法
    使用注解@Async实现异步执行未生效的解决办法1、第一种:未在启动类上标注开启异步执行的注解 启动类 @SpringBootApplication@EnableScheduling@EnableAsync@EnableRedisHttpSession(maxInactiveIntervalInSeconds=3600*4)@MapperScan("com.*")publicclassApplicati......
  • docker-compose 安装部署ElasticSearch 和 Kibana 8.8.1
    docker-compose安装部署ElasticSearch和Kibana8.8.1一、容器编排脚本(docker-compose.yml)version:"3.1"#服务配置services:elasticsearch:container_name:elasticsearch-8.8.1image:docker.elastic.co/elasticsearch/elasticsearch:8.8.1#用来给容......
  • OM6650AM一款低功耗车规级蓝牙5.1 SoC芯片
    OM6650AM是一款超低功耗、同时支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片,采用4.0mmx4.0mmQFN32封装,具有丰富的资源,极低的功耗,优异的射频性能,可广泛应用于车载数字钥匙模组、胎压检测、PKE钥匙等场景。1.特性蓝牙规范完整特性支持数据速率:1Mbps、2Mbps、L......
  • Docker 常用基础|镜像命令
    Docker常用基础|镜像命令一、基础命令dockerversion#查看docker版本信息dockerinfo#查看docker及环境信息dockerhelp#查看帮助文档二、镜像命令dockerimages#列出本地主机上的镜像dockersearch[options]<某个XXX镜像名字>#搜索镜像一般在do......
  • @Transactional事务注解失效
    @Transactional事务注解失效事务注解失效可能出现在以下几个方面:@Transactional标注在了非public修饰的方法上————事务注解失效@Transactional注解属性propagation设置错误—————事务注解失效PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则......
  • docker安装minio
    minio安装​ ##拉取miniodockerpullminio/minio​ 运行镜像dockerrun-p9000:9000-p9090:9090--nameminio\-d--restart=always\-eMINIO_ACCESS_KEY=minio\-eMINIO_SECRET_KEY=yishiqingcheng\-v/usr/local/minio/data:/data\-v/usr/local/minio......
  • java 如何生成doc文档
    cmd命令行:javadoc-encodingUTF-8-charsetUTF-8Doc.java或者在idea中下载差价javaDoc插件,来进行尝试,下载方法如下:如何使用详细教程可以面向百度......
  • Docker 常用容器命令
    Docker常用容器命令  一、新建并启动容器dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]--name="容器新名字"#为容器指定一个名称;-d#后台运行容器,并返回容器ID,也即启动守护式容器;-i#以交互模式运行容器,通常与-t同时使用;-t#为容器重新分配......