摘要:
烦人的表达式转化错误 var query1= emps.Grouby(v=>v.DeptId).Select(g=>new { DeptId=g.Key,Salary=g.Max(x=>x.Salary); var result=from d in depts join q in query1 on 阅读全文
摘要:
一、官方示例 官方示例非常简单,代码如下,也可以看看官方文档 AppDomain currentDomain = AppDomain.CurrentDomain; AssemblyName aName = new AssemblyName("TempAssembly"); AssemblyBuild 阅读全文
摘要:
一、新建分支02swagger git checkout -b 02swagger 二、生成注释的xml文件 vs打开解决方案,找到项目Nest.WebApi名称右键点击属性 切换到生成选项卡 拉到下面输出位置,把xml文档文件的选项框打上钩 把后面文本框的绝对路径改为相对路径..\Nest.Web 阅读全文
摘要:
一、搭建这个项目的原因和目的 突然感觉我个人太没有韧性了,写博客老是坚持不到两周没了草草结束,而且还爱找各种理由:没时间(虽然时间比较紧,但是就是不肯去挤)。 心太大,老是想大而全,不脚踏实地,都是空中楼阁,因此想从基础搭建。 想形成一个工具包,慢慢不断完善,方便自己简单项目的使用。 温故而知新嘛, 阅读全文
摘要:
先补充下上个中间件缺少介绍的,我发现没那个说不下去,看看上个中间件ModularTenantContainerMiddleware的Invoke方法的第一行 public async Task Invoke(HttpContext httpContext) { // Ensure all Shell 阅读全文
摘要:
这源码下面好像没啥说的,都是简单的封装,自己调试跟踪下就明白了,犹豫了几天,讲下去感觉没玩没了的基础知识,我准备快速过了。 上次讲到ExtensionManager的扩展,往下源码就是功能了 var loadedFeatures = new Dictionary<string, FeatureEnt 阅读全文
摘要:
在(三)的时候已经说到模块集合用ForEachAsync的扩展方法分配多个任务,把每个modules的ManifestInfo分析出来的功能加入ConcurrentDictionary。我们先看看这个扩展方法: public static class EnumerableExtensions { p 阅读全文
摘要:
关于如何将模块名添加到程序集的ModuleName说简单吧也简单,说不简单吧也不简单。 简单的原因是代码只有几行,不简单的原因是这些都不是c#,都是MSbuild的代码。这可真难为我了,所以这个地方我卡了两个星期。 首先我们来看下解决方案的目录: 都知道这些文件夹都是解决方案文件夹,但是build解 阅读全文
摘要:
了解到了OrchardCore主要由两个中间件(ModularTenantContainerMiddleware和ModularTenantRouterMiddleware)构成,下面开始了解ModularTenantContainerMiddleware中间件第一行代码。 了解asp.net co 阅读全文
摘要:
现在开始看Starpup的中间件。这是一个扩展方法app.UseOrchardCore() public void Configure(IApplicationBuilder app, IHostEnvironment env) { if (env.IsDevelopment()) { app.Us 阅读全文