这篇文章主要介绍了ServiceStack怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
ServiceStack是目前使用的最舒服的.net服务开发类库,开发简单,速度也相当快,而且还可以进行跨平台,集成多种数据库的访问。
ServiceStack提供基于web可发布在iis的服务和单独的应用程序式运行服务,两种方式都比较简单。
下边举例一个简单的Rest服务开发,是以单独的应用程序运行:
//因服务一般要求的性能都比较高,所以单独程序是要基于console应用程序为开始,下边是一个最简单的apphost的初始化,最重要是要指定监听的url地址
static void Main(string[] args)
{
ServiceStackHost appHost;
appHost = new AppHost()
.Init()
.Start("http://localhost:7771/");
Console.WriteLine("指定服务已启动,监听端口为xxxx,请不要关闭窗
口!");
Console.ReadLine();
}
//apphost的实现,要继承servicestack的AppHostHttpListenerBase
public class AppHost : AppHostHttpListenerBase
{
//配置rest接口所存在的编译集合
public AppHost() : base("ServiceBaseST", typeof(AppHost).Assembly) { }
//apphost中的配置,主要是配置数据库连接等,在此处配置完成后,rest的服务就都可进行使用
public override void Configure(Container container)
{
//初始化数据库连接,ormlite也能够支持多数据源连接
container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory("连接字符串", PostgreSqlDialect.Provider));
}
}
//下边是一个简单的helloworldservice,要继承Service接口,同时要配置服务的
//路由,服务中的方法为Get,Post或者Any,根据路由中的类名进行实现
public class HelloWorldService : Service
{
public Object Get(Hello hello)
{
string _restStr = string.Format("hello {0}!", hello.name);
double[,] a2 = new double[,] { { 1, 2, 3 }, { 4, 5, 6 } };
return new HelloWorldModel() { name = _restStr, userid = "test", testDoule =a2 };
}
}
//服务的路由配置
[Route("/hello/{name}", "GET")]
public class Hello : IReturn<HelloWorldModel>
{
public string name { get; set; }
}
//ServiceStack的服务是以model为基础的,所以一般都定义model进行返回,
//在客户端使用时,url后边加上format=json或者format=xml,就会返回相应格
//式的数据
public class HelloWorldModel
{
public string userid { get; set; }
public string name { get; set; }
public double[,] testDoule { get; set; }
}
//客户端访问的url:http://localhost:7771//hello/name参数?format=json或者format=xml
感谢你能够认真阅读完这篇文章,希望小编分享的“ServiceStack怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。