当前位置: 首页 > news >正文

网站建设流程表php众筹网站程序源码

网站建设流程表,php众筹网站程序源码,用花生壳免费域名做公司网站,山东卓商网站建设公司WeihanLi.Npoi 1.18.0 ReleasedIntro前段时间一直在想#xff0c;把现在的配置做成类似于 AutoMapper 和 FluentValidation 那样#xff0c;把每个类型的 mapping 配置放在一个类中#xff0c;这样我们就可以比较好地组织我们的 mapping 关系#xff0c;也可以配置多个 map… WeihanLi.Npoi 1.18.0 ReleasedIntro前段时间一直在想把现在的配置做成类似于 AutoMapper 和 FluentValidation 那样把每个类型的 mapping 配置放在一个类中这样我们就可以比较好地组织我们的 mapping 关系也可以配置多个 mapping动态地进行切换于是就想着今天实现这个 feature。Sample在 1.18.0 版本中会加入一个 IMappingProfileTEntity 的接口要使用 fluent API 方式自定义 mapping 关系的时候可以实现这个接口这个接口的定义非常的简单定义如下public interface IMappingProfile { }public interface IMappingProfileT {public void Configure(IExcelConfigurationT configuration); } 这里增加了一个非泛型的接口实际使用主要是使用泛型接口非泛型的接口目前是一个空接口用来过滤不符合条件的类型。使用的示例如下public class NoticeProfile: IMappingProfileNotice {public void Configure(IExcelConfigurationNotice noticeSetting){noticeSetting.HasAuthor(WeihanLi).HasTitle(WeihanLi.Npoi test).HasSheetSetting(setting {setting.SheetName  NoticeList;setting.AutoColumnWidthEnabled  true;});noticeSetting.Property(_  _.Id).HasColumnIndex(0);noticeSetting.Property(_  _.Title).HasColumnIndex(1);noticeSetting.Property(_  _.Content).HasColumnIndex(2);noticeSetting.Property(_  _.Publisher).HasColumnIndex(3);noticeSetting.Property(_  _.PublishedAt).HasColumnIndex(4).HasColumnOutputFormatter(x  x.ToStandardTimeString());} } 在注册 IMappingProfile 的时候我们可以通过指定 Type 和程序集扫描两种方式来注册Type 注册可以获取类型的可访问性只要能够编译通过就能注册成功程序集扫描只扫描 public 的类型成员可以根据需要自行选择void LoadMappingProfiles(params Assembly[] assemblies); void LoadMappingProfiles(params Type[] types); 使用示例如下// Load by type FluentSettings.LoadMappingProfiles(typeof(NoticeProfile)); // Load by assembly FluentSettings.LoadMappingProfiles(typeof(NoticeProfile).Assembly); Whats Inside实现方式比较简单通过扫描程序集或加载指定类型通过反射创建一个 mapping profile 实例并注册 mapping 关系。foreach (var type in types.Where(x  x.IsAssignableToIMappingProfile())) {var profileInterfaceType  type.GetImplementedInterfaces().FirstOrDefault(x  x.IsGenericType  x.GetGenericTypeDefinition()  s_profileGenericTypeDefinition);if (profileInterfaceType is null){continue;}var profile  Activator.CreateInstance(type);var entityType  profileInterfaceType.GetGenericArguments()[0];var configuration  InternalHelper.GetExcelConfigurationMapping(entityType);var method  profileInterfaceType.GetMethod(MappingProfileConfigureMethodName,new[] {typeof(IExcelConfiguration).MakeGenericType(entityType)});method?.Invoke(profile, new object[] {configuration}); } More具体使用可以参考项目单元测试和另外一个示例项目https://github.com/OpenReservation/ReservationServer利用 Source Generator 我们可以进一步的将反射的这一过程进行优化在编译时生成强类型的注册代码这样也可以进一步地优化注册性能不过考虑实际注册的时候一般只会执行一次而且目前 VS、Rider 对 Source Generator 的支持不是特别好也就暂时没考虑使用 Source Generator 的方式来做后面可以再做优化希望能够通过这样的功能把 mapping 关系的配置更好的组织起来如果使用时有遇到问题或者觉得需要改进的欢迎通过项目 issue 反馈Referenceshttps://github.com/WeihanLi/WeihanLi.Npoihttps://github.com/OpenReservation/ReservationServer
http://www.pierceye.com/news/737985/

相关文章:

  • 服务器 网站建设比较容易做流量的网站
  • 网站建设基础实训报告天津滨海新区地图全图
  • 兰西网站建设深圳58同城招聘网
  • 兰州网站建设程序烟台赶集网网站建设
  • 自己建立网站后怎么做淘客wordpress需要npv
  • 简单网站建设推荐wordpress主题ashley
  • 单页网站开发实例下载电商营销渠道有哪些
  • 沈阳科技网站首页东营市做网站
  • 网站移动端开发公司客户评价网站建设
  • 有没有做问卷还能赚钱的网站鲜花网站数据库建设
  • 二手房房产网站建设下载网站 源码
  • 做简单手机网站多少钱呀唐山哪里建轻轨和地铁
  • jsp是做网站后台的吗wordpress设置备份
  • 做网站一般使用什么算法织梦 导航网站 模板
  • 网站建设服务费合同如何解决网站只收录首页的一些办法
  • 用js做网站登录阿里巴巴运营岗位
  • 老渔哥网站建设公司重庆建设厂
  • 怎么建网站手机版松门建设规划局网站
  • wordpress网站破解整容医院网络建设公司
  • app如何推广深圳网络排名优化
  • 网站seo规范南昌it制作电商网站的公司
  • 深圳网站设计 工作室深圳品牌设计工作室
  • 手机网站静态动态wordpress注意
  • 什么网站没人做v5shop微分销系统
  • 做鞋子的网站品牌vi设计包括哪些
  • 做产品类的工作上什么网站好asp.net做的网站模板下载
  • 金融公司网站规划方案我司网站改版上线网站建设
  • 城乡与住房建设部网站首页深圳响应式设计企业网站
  • 做网站 带宽 多少钱做电影网站的服务器需要多大
  • 西安网站建设全包用手机制作游戏的软件