public class TestNoopHostLifetime : IHostLifetime { public Task StopAsync(CancellationToken cancellationToken) { Console.WriteLine("The program has stopped"); return Task.CompletedTask; } public Task WaitForStartAsync(Cancell[......]继续阅读
public class TestNoopHostLifetime : IHostLifetime { public Task StopAsync(CancellationToken cancellationToken) { Console.WriteLine("The program has stopped"); return Task.CompletedTask; } public Task WaitForStartAsync(Cancell[......]继续阅读
public class TestNoopHostLifetime : IHostLifetime { public Task StopAsync(CancellationToken cancellationToken) { Console.WriteLine("程序停止"); return Task.CompletedTask; } public Task WaitForStartAsync(CancellationToken cancellationToken)[......]继续阅读
public async static Task (this IApplicationBuilder app) { app.ApplicationServices.GetRequiredService<ObjectAccessor<IApplicationBuilder>>() } { public interface IApplicationBuilder { IFeatureCollection ServerFeatures { get; } IDictionary<string,…
public async static Task (this IApplicationBuilder app) { app.ApplicationServices.GetRequiredService<ObjectAccessor<IApplicationBuilder>>() } { public interface IApplicationBuilder { IFeatureCollection ServerFeatures { get; } IDictionary<string,…
Handling some usages of Stream. public static byte[] GetAllBytes(this Stream stream) { using (var memoryStream = new MemoryStream()) { if (stream.CanSeek) { stream.Position = 0; } stream.CopyTo(memoryStream);[......]继续阅读
处理 Stream 的一些用法。 public static byte[] GetAllBytes(this Stream stream) { using (var memoryStream = new MemoryStream()) { if (stream.CanSeek) { stream.Position = 0; } stream.CopyTo(memoryStream); return[......]继续阅读
IServiceCollection can replace services. ServiceDescriptor can generate custom services to be injected using methods like .Scoped(). public static IServiceCollection AddAbpDynamicOptions<TOptions, TManager>(this IServiceCollection services) where TOption…
1, IServiceCollection 可以被替换服务。 ServiceDescriptor 可以通过 .Scoped() 等生成要注入的自定义服务。 public static IServiceCollection AddAbpDynamicOptions<TOptions, TManager>(this IServiceCollection services) where TOptions : class where TManager : AbpDynamicOptionsManager<…
主要特点: 1,根据当前环境加载 appsettings.xxx.json 文件,或者加载其它 .json 配置文件。 2,AddCommandLine、AddEnvironmentVariables 从程序启动命令行参数和环境变量中导入配置。命令行参数需要以键值的形式填入,如 key1=value1 --key2=value2。 public static IConfigurationRoot BuildConfiguration( AbpConfigurationBuilderOptions options =…
主要特点: 1,根据当前环境加载 appsettings.xxx.json 文件,或者加载其它 .json 配置文件。 2,AddCommandLine、AddEnvironmentVariables 从程序启动命令行参数和环境变量中导入配置。命令行参数需要以键值的形式填入,如 key1=value1 --key2=value2。 public static IConfigurationRoot BuildConfiguration( AbpConfigurationBuilderOptions options =…
We have all reached a somewhat awkward age: we aren't so young anymore, yet we haven't matured enough; we want to rely on ourselves, but we realize we are still a bit short; we wish to move forward, yet we find the road ahead long and winding. There are mists …
我们都到了略显尴尬的年纪:都不那么年轻了,却也没有足够的成长;都想依靠自己,却发现还差一点儿;都想往前走,却发现前路漫漫。前有迷雾,后有压力。可即便迷茫、尴尬,时间依旧拖着你。总有些时刻你不再相信了,可在心底你还是会有所追寻。我们都跑不过时间,只能跑过昨天的自己。 没有什么能一下子拯救你,也没有什么能一下子打垮你,就像我之前说过的一样。只是时间拖着你,把你变得越来越尴尬。明明不年轻了,又不甘心彻底变成大人;明明不那么年轻了,却又没有真正地老了;明明比什么时候都想靠自己,却又发现自己靠不住;明明想往前走,却不知道劲儿…
You want to climb to the top of the mountain; you must put in the effort. You want to get home early; you must start your journey ahead of time. You have your ambitions, which certainly come with hard work. If you think carefully, you will understand that much…
你想爬到山顶,必定得付出努力;你想早点儿回家,必定要提早赶路。你有你的野心,必定伴随着辛苦。仔细想想就会明白,很多苦从你一开始做选择、做决定时就注定了会存在。所以,既然决定是你自己做的,就要承担后果。任何得到都有代价,任何野心的实现都需要点滴的积累。你想看到更多,就得爬到高处。 前阵子读了一个渔夫和富翁的故事。大意是富翁决定放弃自己的财产回到渔村生活,有一天,从小就生活在渔村的渔夫看到富翁,笑他出去那么久,那么辛苦又能怎么样,最后不还是和他一样在海边捕鱼。富翁笑着说:“你是一辈子只能在这里,而我是选择回到这里。” …
那时我常想,那些光芒万丈的人出现在我们的生命里,然后消失,有什么意义?后来我明白,喜欢一个光芒万丈的人一点儿都不可怕,不管遥不遥远。遇到能让你付出的事物或者人,是一种运气。能遇到,就该珍惜。在等待的同时,把那些想留下的品质都留下,把自己变成值得等待的人,就不会辜负这段相遇。 I used to think about the meaning of those brilliant people appearing in our lives and then disappearing. Later, I underst…
那时我常想,那些光芒万丈的人出现在我们的生命里,然后消失,有什么意义?后来我明白,喜欢一个光芒万丈的人一点儿都不可怕,不管遥不遥远。遇到能让你付出的事物或者人,是一种运气。能遇到,就该珍惜。在等待的同时,把那些想留下的品质都留下,把自己变成值得等待的人,就不会辜负这段相遇。 我以前不明白为什么生命中总出现那些“闪闪发光”却难以靠近的存在。明明让人靠近不了,却又让人无法抗拒;明明知道她或许没那么好,却又忍不住把自己摆低。你为了那个人做很多以前不会做的事,听他喜欢的歌、看他喜欢的书,到头来,那个人可能已经不喜欢周杰伦了…
A few days ago, someone emailed me saying that after traveling around, they found themselves still feeling anxious, as if traveling wasn't that effective. There was a time when I was also very passionate about traveling, thinking that I had completed the "…
前两天,有人给我发邮件说,旅行了一圈回来后发现自己还是很焦虑,好像旅行没有那么大的作用。 我自己有一阵子也很热衷于旅行,原以为完成了“打怪升级”的任务,结果面对生活的时候却还是灰头土脸的。 的确,旅行无法为你要面对的现实带来多大的改变,你要做的论题还是那么多,你的上司还是那个。如果你没能清楚地认识到最终你还是得回到生活中,那么旅行就很可能没有那么大的作用。去旅行就一定能够发现自己?别信这句话。如果只去最热门的景点,只看最美丽的景色,同时又在不停地上网,那相当于哪里都没去,因为你没能有所成长。 什么叫在旅行中有所成长…
成长的一部分就是你会不断地和熟悉的东西告别,和一些人告别,做一些以前不会做的事,爱一个可能没有结果的人。不做一些事心痒痒,做了又觉得自己傻。 很久之后我才明白,所谓的“成长”,就是越来越能接受自己本来的样子,也能更好地和孤单的自己、失落的自己、失败的自己相处,并且接受他,然后面对他。 无论将来会遇到谁,生活都是先从遇到自己开始的。 每个人都在寻找一件东西,可我们却很少认真地问问自己到底要什么。我们不停地赶路,永不停歇,却时常怀疑自己追寻的是不是需要的,因而我们变得越发焦虑。世界太大,别人的路是参考,不是标准,你必须…
成长的一部分就是你会不断地和熟悉的东西告别,和一些人告别,做一些以前不会做的事,爱一个可能没有结果的人。不做一些事心痒痒,做了又觉得自己傻。 很久之后我才明白,所谓的“成长”,就是越来越能接受自己本来的样子,也能更好地和孤单的自己、失落的自己、失败的自己相处,并且接受他,然后面对他。 无论将来会遇到谁,生活都是先从遇到自己开始的。 每个人都在寻找一件东西,可我们却很少认真地问问自己到底要什么。我们不停地赶路,永不停歇,却时常怀疑自己追寻的是不是需要的,因而我们变得越发焦虑。世界太大,别人的路是参考,不是标准,你必须…