.netcore3.0 core里面用什么代替System.Web.Service

c# - Asp.net Core and create a webservice (asmx) - Stack Overflow
to customize your list.
This site uses cookies to deliver our services and to show you relevant ads and job listings.
By using our site, you acknowledge that you have read and understand our , , and our .
Your use of Stack Overflow’s Products and Services, including the Stack Overflow Network, is subject to these policies and terms.
Join Stack Overflow to learn, share knowledge, and build your career.
or sign in with
This question already has an answer here:
With previous version of .net, I used right click on project , add file and then I can create a file name "Web Service(asmx)" and then I create my webservice and differents function needed.
But I don't understand how on a new projet .net core, I create the same files to my project?
thank you in advance for your help
marked as duplicate by
&c# badge can single-handedly close
questions as duplicates and reopen them as needed.
This question has been asked before and already has an answer. If those answers do not fully address your question, please .
In Asp.net Core there are no separate Web Api's or Web forms, there is just ASP.Net Core MVC.
Api's are implemented in the same way as MVC using controllers and actions. You just return the response instead of view. Or if you can still return the view containing the response.
For example
[HttpGet("{id}", Name = "GetTodo")]
//Name used when calling the api
public IActionResult GetById(string id)
var item = TodoItems.Find(id);
if (item == null)
return NotFound();
return new ObjectResult(item);
These API's can be called through Http just like asmx.You dont need asmx anymore. For more info see this
ASMX as a technology has been supplanted with newer things in .NET, such as MVC and WebAPI. I'd look into using one of these (probably WebAPI) to create web services in .NET core.
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabledasp.net core 自定义中间件和service
时间: 19:15:50
&&&& 阅读:1612
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&首先新建项目看下main方法:
public static void Main(string[] args)
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup&Startup&()
host.Run();
其中,UseStartup&Startup&()方法使用了Startup类,在Startup类,有ConfigureServices和Configure方法,调用顺序是先ConfigureServices后Configure。
下面生成自定义的Service:
public interface IMService
string GetString();
public class MService:IMService
public string GetString()
return "这是我的服务";
可以在ConfigureServices中这样使用:
services.AddSingleton&IMService, MService&();
或者services.AddScoped&IMService, MService&();或者services.AddTransient&IMService, MService&();这三个方法的作用都一样,只是生成实例的方式不一样,Singleton是所有的service都用单一的实例,Scoped&是一个请求一个实例,Transient&每次使用都是新实例。也可以使用依赖注入的方式添加服务
public static class MServiceExtensions
public static void AddMService(
this IServiceCollection services)
services.AddScoped&IMService,MService&();
这样就可以在ConfigureServices中这样用:services.AddMService();
下面自定义一个middleware
public class MMiddleware
private RequestDelegate nextM
public MMiddleware(RequestDelegate next)
this.nextMiddleware =
public async Task Invoke(HttpContext context)
context.Items.Add("middlewareID",
"ID of your middleware");
await this.nextMiddleware.Invoke(context);
同样的,可以在Configure方法中这样使用:app.UseMiddleware&MMiddleware&();
public static class MyMiddlewareExtensions
public static IApplicationBuilder UseMMiddleware
(this IApplicationBuilder app)
return app.UseMiddleware&MMiddleware&();
就可以app.UseMMiddleware();在controller中可以
public IActionResult Index()
ViewBag.str= service.Getstring();
ViewBag.MiddlewareID = HttpContext.Items["middlewareID"];
return View();
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/indexlang/p/5730056.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!System.Web.HttpUtility.UrlEncode 方法在 net core 中用哪个替代_百度知道
System.Web.HttpUtility.UrlEncode 方法在 net core 中用哪个替代
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
System.Net.WebUtility.UrlDecode移到这里了
System.Net.WebUtility.UrlEncode
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。.net core 无法引用失败的情况下:
1、通过.net framework 工程进行添加
2、copy 代理类&Reference.cs 到.net core 工程下
3、nuget 添加 System.ServiceModel.Http
4、调用代码
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://192.0.4.223:8088/EnterpriseSpace/BPMService.asmx");
BPMServiceSoapClient client = new BPMServiceSoapClient(binding, address);
var response = client.GetHashCode();
阅读(...) 评论()发布于 02/01 17:32
Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架.
持续更新,也可以通过访问,欢迎探讨交流
查看dotnet sdk 版本
$ dotnet --version`
创建项目目录
$ mkdir study
$ cd study
使用 dotnet new 命令创建项目
$ dotnet new console -n Demo
在 VS Code中打开Demo文件夹
一个最小的应用
打开 Program.cs
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
namespace Demo
class Program
static void Main(string[] args)
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup&Startup&()
host.Run();
class Startup
public void Configure(IApplicationBuilder app)
app.Run(async context =&
await context.Response.WriteAsync(&Hello, World!&);
安装相关的Nuget包
$ dotnet add package Microsoft.AspNetCore.Hosting --version 2.0.1
$ dotnet add package Microsoft.AspNetCore.Server.Kestrel --version 2.0.1
下载依赖项
$ dotnet restore
$ dotnet run
Hosting environment: Production
Content root path: C:\netcore\study\Demo\bin\Debug\netcoreapp2.0\
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
根据指定的模板,创建新的项目、配置文件或解决方案。
$ dotnet new -h
使用情况: new [选项]
-h, --help
显示有关此命令的帮助。
-l, --list
列出包含指定名称的模板。如果未指定名称,请列出所有模板。
-n, --name
正在创建输出的名称。如果未指定任何名称,将使用当前目录的名
-o, --output
要放置生成的输出的位置。
-i, --install
安装源或模板包。
-u, --uninstall
卸载一个源或模板包。
基于可用的类型筛选模板。预定义的值为 &project&、&item& 或
强制生成内容,即使该内容会更改现有文件。
-lang, --language
指定要创建的模板的语言。
--------------------------------------------------------------------------------
------------------------
Console Application
[C#], F#, VB
Common/Console
Class library
[C#], F#, VB
Common/Library
Unit Test Project
[C#], F#, VB
Test/MSTest
xUnit Test Project
[C#], F#, VB
Test/xUnit
ASP.NET Core Empty
ASP.NET Core Web App (Model-View-Controller)
ASP.NET Core Web App
Web/MVC/Razor Pages
ASP.NET Core with Angular
Web/MVC/SPA
ASP.NET Core with React.js
Web/MVC/SPA
ASP.NET Core with React.js and Redux
reactredux
Web/MVC/SPA
ASP.NET Core Web API
Web/WebAPI
global.json file
globaljson
NuGet Config
nugetconfig
Web Config
Solution File
Razor Page
Web/ASP.NET
MVC ViewImports
viewimports
Web/ASP.NET
MVC ViewStart
Web/ASP.NET
dotnet new mvc --auth Individual
dotnet new page --namespace
dotnet new --help
使用dotnet new 选择 console 模板 创建项目
$ dotnet new console -n Demo
创建后的项目文档结构是
├── Demo
├── Demo.csproj
└── Program.cs
启用,配置路由
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.R
using Microsoft.Extensions.DependencyI
namespace Demo {
class Startup {
public void ConfigureServices (IServiceCollection services) {
//启用路由
services.AddRouting ();
public void Configure (IApplicationBuilder app) {
//配置路由
app.UseRouter (routes =& {
//根路由 (/)
routes.MapGet(&&, context =&
return context.Response.WriteAsync(&Hello, World!&);
//在根路由 (/) 上,配置 /hello Get请求的路由
routes.MapGet (&hello&, context =& {
return context.Response.WriteAsync (&Got a Get request at /hello&);
安装相关的Nuget包
$ dotnet add package Microsoft.AspNetCore.Routing --version 2.0.1
下载依赖项
$ dotnet restore
$ dotnet run
,输出结果:
Got a Get request at /hello
对 /user 路由的 POST 请求进行响应:
routes.MapPost(&hello&, context =& {
return context.Response.WriteAsync (&Got a Post request at /hello&);
对 /user 路由的 PUT 请求进行响应:
routes.MapPut(&hello&, context =& {
return context.Response.WriteAsync (&Got a Put request at /hello&);
对 /user 路由的 DELETE 请求进行响应:
routes.MapDelete(&hello&, context =& {
return context.Response.WriteAsync (&Got a Dlete request at /hello&);
启用,配置静态资源
创建 wwwroot文件夹
$ mkdir wwwroot
$ cd wwwroot
复制 index.html 到 wwwroot目录
$ mkdir images
$ cd images
复制 favicon.png 到 images文件夹下
项目结构图如下:
├── Demo
├── wwwroot
├── images
├── favicon.png
├── index.html
├── Demo.csproj
└── Program.cs
更改 Program.cs,设置ContentRoot路径为当前项目根目录,启用静态资源
using System.IO;
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.R
using Microsoft.Extensions.DependencyI
namespace Demo {
class Program {
static void Main (string[] args) {
Console.WriteLine (AppContext.BaseDirectory);
var host = new WebHostBuilder ()
.UseKestrel ()
//设置 ContentRoot, ContentRoot是任何资源的根路径,比如页面和静态资源
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup&Startup&()
.Build ();
host.Run ();
class Startup {
public void Configure (IApplicationBuilder app) {
//使用静态资源,默认的目录是 /wwwroot
app.UseStaticFiles ();
配置其他文件夹
新建文件夹myfiles
$ mkdir myfiles
$ cd myfiles
创建一个新的 index.html到myfiles文件夹,配置并使用myfiles文件夹
app.UseStaticFiles (new StaticFileOptions {
FileProvider = new PhysicalFileProvider (
Path.Combine (Directory.GetCurrentDirectory (), &myfiles&)),
RequestPath = &/myfiles&
Razor模板引擎
Asp.net Core自带的模板引擎是 Razor模板引擎,传统的Razor页面以cshtml结尾,
遗憾的是Razor模板引擎在Asp.net Core中封装在了MVC模块之中,需要做一些扩展才可以单独拿出来使用
创建模板页面
创建 views文件夹
$ mkdir views
$ cd views
创建 index.cshtml 页面
&!DOCTYPE html&
&meta charset=&utf-8& /&
@for (int i = 0; i & 5; i++)
&li&第@(i + 1)行&/li&
using System.IO;
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.R
using Microsoft.Extensions.DependencyI
namespace Demo
class Program
static void Main(string[] args)
Console.WriteLine(AppContext.BaseDirectory);
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup&Startup&()
host.Run();
class Startup
public void ConfigureServices(IServiceCollection services)
services.AddMvc();
services.AddSingleton&RazorViewRenderer&();
public void Configure(IApplicationBuilder app)
app.UseRouter(routes =&
//根路径 /
routes.MapGet(&&, context =&
return context.Render(&/views/index.cshtml&);
安装相关的Nuget包
$ dotnet add package Microsoft.AspNetCore.Mvc --version 2.0.2
下载依赖项
$ dotnet restore
$ dotnet run
新增实体类 UserInfo
public class UserInfo
public string Name { }
public int Age { }
新增user.cshtml页面
@model UserInfo
&!DOCTYPE html&
&meta charset=&utf-8& /&
&li&姓名:@Model.Name&/li&
&li&年龄:@Model.Age&/li&
更改Program.cs
app.UseRouter(routes =&
//根路径 /
routes.MapGet(&&, context =&
return context.Render(&/views/index.cshtml&);
routes.MapGet(&/user&, context =&
return context.Render(&/views/user.cshtml&, new UserInfo() { Name = &张三&, Age = 18 });
$ dotnet run
QueryString
var queryCollection = context.Request.Q
foreach (var item in queryCollection)
Console.WriteLine(item.Key + &:& + item.Value);
if (context.Request.ContentType.ToLower().Contains(&application/x-www-form-urlencoded&)
var formCollection = context.Request.F
foreach (var item in formCollection)
Console.WriteLine(item.Key + &:& + item.Value);
var fileCollections = context.Request.Form.F
var rootPath = context.RequestServices.GetService&IHostingEnvironment&().ContentRootP
foreach (var item in fileCollections)
var path = Path.Combine(rootPath,item.FileNa
using (var stream = new FileStream(path, FileMode.Create))
await item.CopyToAsync(stream);
Console.WriteLine(item.FileName + &:& + item.Length);
var headerCollection = context.Request.H
foreach (var item in headerCollection)
Console.WriteLine(item.Key + &:& + item.Value);
StreamReader reader = new StreamReader(context.Request.Body);
string text = reader.ReadToEnd();
var cookieCollection=context.Request.C
foreach (var item in cookieCollection)
Console.WriteLine(item.Key + &:& + item.Value);
错误和重定向
context.Response.Redirect(&path&)
状态代码页
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.D
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.R
using Microsoft.Extensions.DependencyI
using System.IO;
using System.Text.Encodings.W
namespace Demo
class Program
static void Main(string[] args)
Console.WriteLine(AppContext.BaseDirectory);
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup&Startup&()
host.Run();
class Startup
public void ConfigureServices(IServiceCollection services)
//启用路由
services.AddRouting();
services.AddMvc();
services.AddSingleton&RazorViewRenderer&();
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
//启用状态码页
app.UseStatusCodePages();
app.UseRouter(routes =&
//根路径 /
routes.MapGet(&&, context =&
return context.Render(&/views/index.cshtml&);
自定义状态码页
新增 404.cshtml
&!DOCTYPE html&
&meta charset=&utf-8& /&
&h1& Oops! Page Not Found ! &/h1&
配置和使用自定义的状态码页
app.UseStatusCodePagesWithRedirects(&/status/{0}&);
app.UseRouter(routes =&
routes.MapGet(&&, context =&
return context.Response.WriteAsync(&root path&);
routes.MapGet(&status/{code}&, (request, response, routeData) =&
var statusCodePagesFeature = request.HttpContext.Features.Get&IStatusCodePagesFeature&();
var code = routeData.Values[&code&];
if (statusCodePagesFeature != null && code!=null && code.ToString() == &404&)
//跳转到自定义的404页面
return request.HttpContext.Render(&/views/404.cshtml&);
return response.WriteAsync(HtmlEncoder.Default.Encode(&状态码:&+ routeData.Values[&code&]));
异常错误页
开发异常页面,Asp.net Core自带
app.UseDeveloperExceptionPage();
新增测试路由,抛出空指针异常
env.EnvironmentName = EnvironmentName.D
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseExceptionHandler(&/error&);
app.UseRouter(routes =&
routes.MapGet(&&, context =&
return context.Response.WriteAsync(&root path&);
routes.MapGet(&test&, context =&
throw new Exception(&空指针异常!!!&);
访问,得到下面的页面
自定义异常页面
env.EnvironmentName = EnvironmentName.P
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
//自定义异常错误页面
app.UseExceptionHandler(&/error&);
app.UseRouter(routes =&
routes.MapGet(&&, context =&
return context.Response.WriteAsync(&root path&);
routes.MapGet(&test&, context =&
throw new Exception(&空指针异常!!!&);
//自定义异常错误页面
routes.MapGet(&error&, context =&
context.Response.StatusCode = 500;
context.Response.ContentType = &text/html&;
var error = context.Features.Get&IExceptionHandlerFeature&();
if (error != null)
return context.Response.WriteAsync(&&h1&& + HtmlEncoder.Default.Encode(&发生了错误: & + error.Error.Messa + &&/h1&&);
return context.Response.WriteAsync(&&h1&& + HtmlEncoder.Default.Encode(&Oops! 发生了错误,请联系管理员&)&&/h1&&);
新增登陆页面login.cshtml
&!DOCTYPE html&
&meta charset=&utf-8& /&
&form action=&/login& method=&post&&
&label&用户名:&/label&
type=&text& name=&UserName& /&
&label&密码:&/label&
&input type=&password& name=&PassWord& /&
&input type=&submit& value=&登陆& /&
添加并启用Session,输入用户名和密码,点击登陆,保持Session数据,登陆成功跳转到/home路由页面,访问Session数据,显示当前登陆的用户名
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.R
using Microsoft.Extensions.DependencyI
using System.IO;
using System.Threading.T
namespace Demo
class Program
static void Main(string[] args)
Console.WriteLine(AppContext.BaseDirectory);
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup&Startup&()
host.Run();
class Startup
public void ConfigureServices(IServiceCollection services)
//启用路由
services.AddRouting();
services.AddMvc();
services.AddSingleton&RazorViewRenderer&();
//增加Session
services.AddSession();
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
app.UseDeveloperExceptionPage();
// 启用Session
app.UseSession();
app.UseRouter(routes =&
routes.MapGet(&&, (request, response, routeData) =&
return request.HttpContext.Render(&/views/login.cshtml&);
routes.MapGet(&home&, context =&
string userName = context.Session.GetString(&userName&);
if (!string.IsNullOrEmpty(userName))
return context.Response.WriteAsync(&User:& + userName);
context.Response.Redirect(&/&);
return Task.CompletedT
routes.MapPost(&login&, context =&
var userName = context.Request.Form[&UserName&].ToString();
var password = context.Request.Form[&PassWord&].ToString();
if (userName.Equals(&admin&) && password.Equals(&123456&))
context.Session.SetString(&userName&, password);
context.Response.Redirect(&/home&);
return Task.CompletedT
throw new Exception(&用户名或密码错误&);
安装Nuget包
$ dotnet add package Microsoft.Extensions.Logging --version 2.0.0
$ dotnet add package Microsoft.Extensions.Logging.Console --version 2.0.0
下载依赖项
$ dotnet restore
添加日志模块
//启用日志
services.AddLogging(builder=& {
//使用控制台日志提供程序
builder.AddConsole();
创建ILogger实例
var logger = context.RequestServices.GetService&ILogger&Startup&& ();
//记录日志
logger.LogInformation(&before hello world&);
日志的类别,可以是任意字符串,默认是完全限定的类名,例如: Demo.Startup
logger.LogTrace();
logger.LogDebug();
logger.LogInformation();
logger.LogWarning();
logger.LogError();
logger.LogCritical();
给日志分类为 Demo.Startup的日志类别限定最小的日志级别是LogLevel.Information
services.AddLogging(builder=& {
builder.AddFilter(&Demo.Startup&, LogLevel.Information);
builder.AddConsole();
访问日志类别
using Microsoft.AspNetCore.B
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.H
using Microsoft.AspNetCore.R
using Microsoft.Extensions.C
using Microsoft.Extensions.DependencyI
using Microsoft.Extensions.L
using System.Collections.G
using System.IO;
using System.Threading.T
namespace Demo
class Program
static void Main(string[] args)
var configBuilder = new ConfigurationBuilder();
configBuilder.AddInMemoryCollection(new Dictionary&string, string&() {
{ &name&,&zhangsan&},
{ &age&,&18&}
var config = configBuilder.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration(config)
.UseStartup&Startup&()
host.Run();
app.UseRouter(routes =&
routes.MapGet(&&, context =&
var config = context.RequestServices.GetService&IConfiguration&();
string name = config[&name&];
string age = config[&age&];
return context.Response.WriteAsync(&name:&+name+&,Age:&+age);
添加依赖的Nuget包
$ dotnet add package Microsoft.Extensions.Localization --version 2.0.1
下载依赖项
$ dotnet restore
资源文件命名规则
命名规则 {分类名称}.{语言区域名称}.resx
分类名称:默认的分类名称就是类型的FullName,在AssemblyName后的相对路径,比如Demo.Startup,程序集的名称Demo,就剩下了Startup
语言区域名称: 语言区域名称有zh-CN,en-US,
特殊条件下你也可以将资源文件和类定义文件放在同一个目录,这样资源文件的分类名称就是**{类名称}.{语言区域名称}.resx**
添加资源文件
新建 myresources文件夹
新建 Startup.en-US.resx 新增项 name是sayhi,value是 HelloWorld
新建 Startup.zh-CN.resx 新增项 name是sayhi,value是 世界你好
添加本地化
services.AddLocalization(options =&
options.ResourcesPath = &myresources&;
启用本地化
var cultureList = new List&CultureInfo&() {
new CultureInfo(&en-US&),
new CultureInfo(&zh-CN&)
var options = new RequestLocalizationOptions()
SupportedCultures = cultureList,
SupportedUICultures = cultureList,
DefaultRequestCulture = new RequestCulture(&zh-CN&)
//新建基于Query String的多语言提供程序
var provider = new QueryStringRequestCultureProvider();
provider.QueryStringKey = &culture&;
provider.UIQueryStringKey = &uiculture&;
//删除所有多语言提供程序
options.RequestCultureProviders.Clear();
options.RequestCultureProviders.Add(provider);
资源文件读取
var stringLocalizer = context.RequestServices.GetService&IStringLocalizer&Startup&&();
string sayhi = stringLocalizer[&sayhi&];
切换为英文版本,默认的语言是中文
多语言提供程序
通过Query String,[默认自带]
通过Cookie,[默认自带]
通过Accept-Language header,[默认自带]
通过RouteData
模板格式化
string username=&张三&;
string localizedString = _localizer[&Hello {0}!&, username];
& 著作权归作者所有
人打赏支持
码字总数 3587
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...
郑州-在路上
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...
郑州-在路上
在开发asp.net core过程中,记录下使用知识的点点滴滴,方便初次接触的人参考学习。技术有你,共同前行。 asp.net core下的RequestBody和RequestForm提交 asp.net core跨域访问ajax的验证访问...
原文地址 Identity Server 4是IdentityServer的最新版本,它是流行的OpenID Connect和OAuth Framework for .NET,为ASP.NET Core和.NET Core进行了更新和重新设计。在本文中,我们将快速了解...
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...
郑州-在路上
没有更多内容
加载失败,请刷新页面
一、块定义 /** * 区块结构 * @author */ public class Block { /** * 区块索引号 */ /** * 当前区块的hash值,区块唯一标识 */ private S /** * 生成区块的时...
参考 WIN7快捷键大全 1、win快捷键 首先教大家win7新增的3D效果: Win + Tab 快速切换已打开的程序(和Alt+tab一样的效果) Win + Home 将所有使用中窗口以外的窗口最小化 Win + Space 空格键...
1 前言 王镜鑫是山东大学软工专业大三学生,学校ING工作室后台组组长,工作党,参加了18年实习生春招,在三周的时间内"收割"了三家大厂的Offer:美团、百度和阿里巴巴, 最后选择了心仪的阿里...
本文首发于个人微信公众号《andyqian》,期待你的关注! 前言 有好几天没有更新了,今年过的格外快些。眨眼间已经到了下半年。嗯,切入今天的正题。今天给大家推荐一本好书《重构》。说起重构...
表结构如下: 假设想要实现当记录存在时account值加1,而记录不存在时插入记录,可以这样来实现: INSERT INTO A (ID, username, account)VALUES(1, 'aa', 0) ON conflict (ID) DO...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定取消删除此文章吗?
亲,自荐的博客将通过私信方式通知管理员,优秀的博客文章审核通过后将在博客推荐列表中显示
确定推荐此文章吗?
确定推荐此博主吗?
聚合全网技术文章,根据你的阅读喜好进行个性推荐
指定官方社区
深圳市奥思网络科技有限公司版权所有}

我要回帖

更多关于 .netcore3.0 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信