深度优先

这个家伙好懒,除了文章什么都没留下

0%

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Reflection;
using System.Text;

namespace XXX.Infrastructure.Extensions
{
/// <summary>
/// 数据实体进行过滤
/// </summary>
public static class ObjectExtensions
{
/// <summary>
/// 扩展方法 对实体数据进行过滤
/// </summary>
/// <typeparam name="TSource">实体的类型</typeparam>
/// <param name="source">实体数据</param>
/// <param name="fields">需要提取的字段,以,分隔</param>
/// <returns></returns>
public static ExpandoObject ToDynamic<TSource>(this TSource source, string fields = null)
{
if (source == null)
{
throw new ArgumentNullException(nameof(source));
}

var dataShapedObject = new ExpandoObject();
if (string.IsNullOrWhiteSpace(fields))
{
var propertyInfos = typeof(TSource).GetProperties(BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
foreach (var propertyInfo in propertyInfos)
{
var propertyValue = propertyInfo.GetValue(source);
((IDictionary<string, object>)dataShapedObject).Add(propertyInfo.Name, propertyValue);
}
return dataShapedObject;
}
var fieldsAfterSplit = fields.Split(',').ToList();
foreach (var field in fieldsAfterSplit)
{
var propertyName = field.Trim();
var propertyInfo = typeof(TSource).GetProperty(propertyName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
if (propertyInfo == null)
{
throw new Exception($"Can't found property ‘{typeof(TSource)}’ on ‘{propertyName}’");
}
var propertyValue = propertyInfo.GetValue(source);
((IDictionary<string, object>)dataShapedObject).Add(propertyInfo.Name, propertyValue);
}

return dataShapedObject;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Reflection;
using System.Text;

namespace XXX.Infrastructure.Extensions
{
/// <summary>
/// 数据集合进行过滤
/// </summary>
public static class EnumerableExtensions
{
/// <summary>
/// 扩展方法 对返回集合数据进行过滤
/// </summary>
/// <typeparam name="TSource">对象的类型</typeparam>
/// <param name="source">数据集合</param>
/// <param name="fields">需要提取的字段,以,分隔</param>
/// <returns></returns>
public static IEnumerable<ExpandoObject> ToDynamicIEnumerable<TSource>(this IEnumerable<TSource> source, string fields = null)
{
if (source == null)
{
throw new ArgumentNullException(nameof(source));
}
//过滤后返回数据集合
var expandoObjectList = new List<ExpandoObject>();
//属性信息列表
var propertyInfoList = new List<PropertyInfo>();

//获取需要的字段列表
if (string.IsNullOrWhiteSpace(fields))
{
var propertyInfos = typeof(TSource).GetProperties(BindingFlags.Public | BindingFlags.Instance);
propertyInfoList.AddRange(propertyInfos);
}
else
{
var fieldsAfterSplit = fields.Split(',').ToList();
foreach (var field in fieldsAfterSplit)
{
var propertyName = field.Trim();
if (string.IsNullOrEmpty(propertyName))
{
continue;
}
var propertyInfo = typeof(TSource).GetProperty(propertyName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
if (propertyInfo == null)
{
throw new Exception($"Property {propertyName} wasn't found on {typeof(TSource)}");
}
propertyInfoList.Add(propertyInfo);
}
}
//提取需要的字段数据
foreach (TSource sourceObject in source)
{
var dataShapedObject = new ExpandoObject();
foreach (var propertyInfo in propertyInfoList)
{
var propertyValue = propertyInfo.GetValue(sourceObject);
((IDictionary<string, object>)dataShapedObject).Add(propertyInfo.Name, propertyValue);
}
expandoObjectList.Add(dataShapedObject);
}

return expandoObjectList;
}
}
}
1
postResources.ToDynamicIEnumerable(postParameters.Fields)

从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD

摘要: 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html 第4部分:h阅读全文

posted @ 2017-10-16 16:32solenovex 阅读(4437) |评论 (18)编辑

从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

摘要: 第1部分: http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html Githu阅读全文

posted @ 2017-10-13 21:54solenovex 阅读(4696) |评论 (14)编辑

从头编写 asp.net core 2.0 web api 基础框架 (3)

摘要: 第一部分: http://www.cnblogs.com/cgzl/p/7637250.html 第二部分:http://www.cnblogs.com/cgzl/p/7640077.html Github源码地址:https://github.com/solenovex/Building-asp.[阅读全文](https://www.cnblogs.com/cgzl/p/7652413.html)

posted @ 2017-10-12 07:16solenovex 阅读(10525) |评论 (23)编辑

从头编写 asp.net core 2.0 web api 基础框架 (2)

摘要: 上一篇是: http://www.cnblogs.com/cgzl/p/7637250.html Github源码地址是: https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scrat[阅读全文](https://www.cnblogs.com/cgzl/p/7640077.html)

posted @ 2017-10-09 18:23solenovex 阅读(6131) |评论 (13)编辑

从头编写 asp.net core 2.0 web api 基础框架 (1)

摘要: 工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相关知识就不介绍了, 这里主要是从头编写一个asp.net core 2.0 web api的基础框架阅读全文

posted @ 2017-10-08 16:56solenovex 阅读(12715) |

最近把这些基本都看完了,收获挺多的,博主写的真心好!

OS要求

要安装Docker CE,您需要CentOS 7的维护版本。不支持或测试存档版本。

centos-extras 库必须启用。默认情况下,此存储库已启用,但如果已将其禁用,则需要 重新启用它

overlay2 建议使用存储驱动程序。

1
2
[root@Host /]# uname -a
Linux Host 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

卸载旧版本

较旧版本的Docker被称为 dockerdocker-engine 。如果已安装这些,请卸载它们以及相关的依赖项。

1
2
3
4
5
6
7
8
9
10
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

如果 yum 报告没有安装这些软件包,则可以。

/var/lib/docker/ 保留包括图像,容器,卷和网络在内的内容。现在调用Docker CE包 docker-ce

安装Docker CE

1、安装所需的包。 yum-utils 提供了 yum-config-manager 效用,并 device-mapper-persistent-datalvm2 由需要 devicemapper 存储驱动程序。

1
2
3
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

2、使用以下命令设置稳定存储库。即使您还想从边缘测试存储库安装构建,您始终需要稳定的存储 库。

1
2
3
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

3、安装_最新版本_的Docker CE

1
sudo yum install docker-ce

https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository