ServiceStack

2025-12-07 0 557

关注 @ ServiceStack或查看文档,使用Stackoverflow或客户论坛进行支持。

查看最新功能的发行说明,或查看概述的ServiceStack .NET/功能。

简单,快速通用和功能齐全的服务框架

ServiceStack是一种简单,快速,通用和高度生产力的全网络和Web服务框架,经过深思熟虑,旨在通过基于消息的设计来降低人造复杂性并促进远程服务的最佳实践,从而最大程度地使用它,可以最大程度地利用,可以利用集成的服务网关来创建松散耦合的模块化模块化的模块化型架构。 ServiceStack服务可通过一系列内置快速数据格式(Inc. JSON,XML,CSV,JSV,ProTobuf,Wire和MSGPACK)以及用于肥皂端点的XSD/WSDL,用于肥皂端点和兔子MQ,Redis MQ和Amazon SQS MQ主机。

它的设计和简单焦点提供了一套无与伦比的生产力功能套件,可以在没有代码的情况下声明地启用,从创建完全可查询的Web API,只有单个键入的请求DTO,并带有自动查询,可以为每个主要的RDBMS提供支持自动批次批次的请求的内置支持,或者轻松地允许使用丰富的HTTP缓存和无用的服务来实现所有现有的服务。

您的相同服务还可以作为ServiceStack智能剃须刀视图中的控制器,从而减少了为Web和单页应用程序服务的努力,以及能够使用ServiceStack的实时服务器活动提供即时交互式体验的丰富桌面和移动客户端。

ServiceStack Services还为消费者最大化生产率,为消费者提供即时的端到端键入API,而无需代码 – 代码,从而为.NET到.NET Web服务提供了最有生产力的开发体验。

从所有主要IDE中生成即时键入API!

ServiceStack now integrates with all Major IDE\’s used for creating the best native experiences on the most popular platforms to enable a highly productive dev workflow for consuming Web Services, making ServiceStack the ideal back-end choice for powering rich, native iPhone and iPad Apps on iOS with Swift, Mobile and Tablet Apps on the Android platform with Java, OSX Desktop Applications as well as targeting the most popular .NET PCL platforms including Xamarin.ios,Xamarin.android,Windows Store,WPF,Winforms和Silverlight:

vs.net与ServiceStack集成与

直接在Visual Studio中为C#,Typescript,F#和VB.NET提供即时本机键入API,直接在Windows上使用Xamarin.ios和Xamarin.android,在Visual Studio中为最流行的.NET平台提供了最流行的.NET平台。

Xamarin Studio与ServiceStack XS集成

使用Xamarin.ios和Xamarin.Android提供C#本机类型,以使用OSX上的Xamarin Studio开发iOS和Android移动应用程序。 ServiceStack XS插件还提供了丰富的Web服务开发体验开发客户端应用程序,并在Linux上开发了Mono

XCode与ServiceStack XC插件集成

在SWIFT中提供即时的本机键入API,包括通用服务客户端,从而直接从Xcode内部提供了高度生产的工作流程和轻松消费Web服务的Web服务!

Android Studio与ServiceStack Ideas集成

在Java和Kotlin中提供即时的本机键入API,其中包括惯用的Java通用服务客户端,支持Sync和异步请求,通过利用Android的异步异型,以启用富含服务的本机Java或Kotlin移动应用程序在Android Platform上创建富含服务的本机Java或Kotlin移动应用程序 – 直接从Android Dutio室内!

Intellij Intellation与ServiceStack想法

ServiceStack Idea插件可直接从Intellij的插件存储库中安装,并可以与Intellij Java Maven项目无缝集成,以生成类型的API,以快速而轻松地从纯交叉平台Java或Kotlin客户端使用远程ServiceStack Web服务。

Eclipse与ServiceStack Eclipse集成

Java Add ServiceStack参考提供的无与伦比的生产率也可在Eclipse Marketplace的ServiceStack Eclipse IDE插件中获得,可在Eclipsak Marketplace中安装,以深入整合添加ServiceStack参考,使Eclipse Java Maven Projects促使Java开发人员轻松地添加和更新其Evolvand ServiceStack Web Services的参考。

ServiceStack -Cli- ServiceStack的简单命令行实用程序

除了我们受支持的IDE列表不断增长之外, ServiceStack -Cli跨平台命令行NPM脚本也使构建服务器,自动化任务和您喜欢的文本编辑器的命令行跑步者可以轻松添加和更新ServiceStack参考!

简单的客户数据库REST服务示例

此示例也可以作为独立集成测试提供:

 //Web Service Host Configuration
public class AppHost : AppSelfHostBase
{
    public AppHost ( ) 
        : base ( \"Customer REST Example\" , typeof ( CustomerService ) . Assembly ) { }

    public override void Configure ( Container container )
    {
        //Register which RDBMS provider to use
        container . Register < IDbConnectionFactory > ( c => 
            new OrmLiteConnectionFactory ( \":memory:\" , SqliteDialect . Provider ) ) ;

        using ( var db = container . Resolve < IDbConnectionFactory > ( ) . Open ( ) )
        {
            //Create the Customer POCO table if it doesn\'t already exist
            db . CreateTableIfNotExists < Customer > ( ) ;
        }
    }
}

//Web Service DTO\'s
[ Route ( \"/customers\" , \"GET\" ) ]
public class GetCustomers : IReturn < GetCustomersResponse > { }

public class GetCustomersResponse
{
    public List < Customer > Results { get ; set ; } 
}

[ Route ( \"/customers/{Id}\" , \"GET\" ) ]
public class GetCustomer : IReturn < Customer >
{
    public int Id { get ; set ; }
}

[ Route ( \"/customers\" , \"POST\" ) ]
public class CreateCustomer : IReturn < Customer >
{
    public string Name { get ; set ; }
}

[ Route ( \"/customers/{Id}\" , \"PUT\" ) ]
public class UpdateCustomer : IReturn < Customer >
{
    public int Id { get ; set ; }

    public string Name { get ; set ; }
}

[ Route ( \"/customers/{Id}\" , \"DELETE\" ) ]
public class DeleteCustomer : IReturnVoid
{
    public int Id { get ; set ; }
}

// POCO DB Model
public class Customer
{
    [ AutoIncrement ]
    public int Id { get ; set ; }

    public string Name { get ; set ; }
}

//Web Services Implementation
public class CustomerService : Service
{
    public object Get ( GetCustomers request )
    {
        return new GetCustomersResponse { Results = Db . Select < Customer > ( ) } ;
    }

    public object Get ( GetCustomer request )
    {
        return Db . SingleById < Customer > ( request . Id ) ;
    }

    public object Post ( CreateCustomer request )
    {
        var customer = new Customer { Name = request . Name } ;
        Db . Save ( customer ) ;
        return customer ;
    }

    public object Put ( UpdateCustomer request )
    {
        var customer = Db . SingleById < Customer > ( request . Id ) ;
        if ( customer == null )
            throw HttpError . NotFound ( \"Customer \'{0}\' does not exist\" . Fmt ( request . Id ) ) ;

        customer . Name = request . Name ;
        Db . Update ( customer ) ;

        return customer ;
    }

    public void Delete ( DeleteCustomer request )
    {
        Db . DeleteById < Customer > ( request . Id ) ;
    }
}

从任何C#/。NET客户端调用上述休息服务

无需代码,可以在服务器DTO上重复使用:

 var client = new JsonServiceClient ( BaseUri ) ;

//GET /customers
var all = client . Get ( new GetCustomers ( ) ) ;                         // Count = 0

//POST /customers
var customer = client . Post ( new CreateCustomer { Name = \"Foo\" } ) ;

//GET /customer/1
customer = client . Get ( new GetCustomer { Id = customer . Id } ) ;      // Name = Foo

//GET /customers
all = client . Get ( new GetCustomers ( ) ) ;                             // Count = 1

//PUT /customers/1
customer = client . Put (
    new UpdateCustomer { Id = customer . Id , Name = \"Bar\" } ) ;       // Name = Bar

//DELETE /customers/1
client . Delete ( new DeleteCustomer { Id = customer . Id } ) ;

//GET /customers
all = client . Get ( new GetCustomers ( ) ) ;                             // Count = 0

相同的代码也与Android,iOS,Xamarin.Forms,UWP和WPF客户端一起使用。

f#和vb.net可以重复使用相同的.NET服务客户端和DTO

从打字稿打电话

 const client = new JsonServiceClient ( baseUrl ) ;
const { results } = await client . get ( new GetCustomers ( ) ) ;

来自Swift的电话

 let client = JsonServiceClient ( baseUrl : BaseUri )

client . getAsync ( GetCustomers ( ) )
    . then {
        let results = $0 . results;
    }

从Java打电话

 JsonServiceClient client = new JsonServiceClient ( BaseUri );

GetCustomersResponse response = client . get ( new GetCustomers ());
List < Customer > results = response . results ; 

从科特林打电话

 val client = JsonServiceClient ( BaseUri )

val response = client.get( GetCustomers ())
val results = response.results

从DART打电话

 var client = new JsonServiceClient ( BaseUri );

var response = await client. get ( GetCustomers ());
var results = client.results;

使用打字稿定义从jQuery调用

 $ . getJSON ( $ . ss . createUrl ( \"/customers\" , request ) , request , ( r : GetCustomersResponse ) => {
    var results = r . results ;
} ) ;

使用Angular HTTP客户端使用打字稿定义:

 this . http . get < GetCustomersResponse > ( createUrl ( \'/customers\' , request ) ) . subscribe ( r => {
    this . results = r . results ;
} ) ;

从jQuery打电话

 $ . getJSON ( baseUri + \"/customers\" , function ( r ) {
	var results = r . results ;
} ) ;

这就是创建和消费简单的启用数据库REST Web服务所需的所有应用程序代码!

入门

  • 入门部分开始
  • 示例应用程序和演示
  • 社区资源

发行说明

下载

如果您安装了Nuget,则最简单的入门方法是:

通过Nuget安装ServiceStack 。

Nuget上的最新V4+是带有免费配额的商业版本。

旧V3 BSD版本的文档和下载

现场演示

示例项目,用例,演示,入门模板的确定列表

复制

自2013年9月以来, ServiceStack源代码可根据GNU AFFERO通用公共许可/FOSS许可例外提供,请参见源中的LICENT.TXT。还提供替代商业许可,请参阅https://*service*s*tack.net/pricing有关详细信息。

贡献

贡献者需要在审查任何代码之前批准贡献者许可协议,请参阅贡献文档以获取更多详细信息。所有贡献都必须包括验证所需行为的测试。

使用的OSS库

ServiceStack包含以下大库的源代码,以提供其某些核心功能。每个图书馆均根据其各自的许可发布:

  • MONO(麻省理工学院许可证)
  • FUNQ IOC(MS-PL许可证)
  • 流利的验证(Apache许可证2.0)
  • Mini Profiler(麻省理工学院许可证)
  • Dapper(Apache许可证2.0)
  • TweetStation的Oauth图书馆(MIT许可证)
  • Markdownsharp(麻省理工学院许可证)
  • Markdown -Deep(Apache许可证2.0)
  • htmlcompressor(Apache许可证2.0)
  • JSMIN(Apache许可证2.0)
  • RecyclableMorystream(MIT许可证)
  • ASP.NET MVC(Apache许可证2.0)
  • CoreFX(麻省理工学院许可证)
  • NITO.ASYNCEX(MIT许可证)

了解更多

关注 @ ServiceStack和 + ServiceStack进行项目更新。


核心团队

  • Mythz(Demis Bellot)
  • Layoric(Darren Reid) / @layoric
  • Xplicit(Sergey Zhukov) / @quantumcalc
  • Desunit(Sergey Bogdanov) / @desunit
  • Arxisos(SteffenMüller) / @ARXISOS

贡献者

非常感谢Github和ServiceStack的所有贡献者:

  • BMAN654(布兰登·华莱士)
  • Iristyle(Ethan Brown)
  • 超逻辑(杰克·斯科特(Jake Scott))
  • itamar82
  • 查德瓦克曼
  • derfsplat
  • Johnacarruthers(John Carruthers)
  • Mvitorino(Miguel Vitorino)
  • Bsiegel(布兰登·西格尔)
  • Mdavid(M. David Peterson)
  • Lhaussknecht(路易斯·豪斯克内希特)
  • 格伦德洛(Marek Habersack)
  • Stevedunn(史蒂夫·邓恩)
  • Kcherenkov(Konstantin Cherenkov)
  • Timryan(Tim Ryan)
  • 让Sellsellsomebananas(Tymek Majewski)
  • Danbarua(Dan Barua)
  • 乔纳宁(乔恩·坎宁)
  • 佩贡(詹姆斯·戈利克)
  • PVASEK(PVASEK)
  • DERFSPLAT(DERFSPLAT)
  • 贾斯汀罗斯顿(贾斯汀·罗斯顿)
  • Danmiser(Dan Miser)
  • 丹特金森(丹·阿特金森)
  • Brainless83(Thomas Grassauer)
  • Angelcolmenares(Angel Colmenares)
  • DBEATTIE71(Derek Beattie)
  • Danielwertheim(Daniel Wertheim)
  • 格雷格鲁伯茨(格雷格·罗伯茨)
  • INT03(SelimSelçuk)
  • andidog(andidog)
  • Chuckb(Chuckb)
  • Niemyjski(Blake Niemyjski)
  • MJ1856(马特·约翰逊)
  • Matthieugd(Matthieu)
  • tomaszkubacki(tomasz kubacki)
  • E11137(Rogelio Canedo)
  • 戴维罗斯(David Roth)
  • Meebey(Mirco Bauer)
  • CodedeMonuk(Pervez Choudhury)
  • Jrosskopf(Joachim Rosskopf)
  • 弗里主义(迈克尔·弗里斯)
  • mp3125
  • Aurimas86
  • 帕纳姆(丹·帕纳姆)
  • Yeurch(Richard Fawcett)
  • 达米安(Damian Hickey)
  • 弗里曼(Michel Rasschaert)
  • Kvervo(Kvervo)
  • Pauldbau(Paul du Bois)
  • 贾斯汀·帕尼(Justin Pihony)
  • Bokmadsen(Bo Kingo Damgaard)
  • Dragan(Dale Ragan)
  • Sneal(Shawn Neal)
  • Johnsheehan(John Sheehan)
  • jschlicht(Jared Schlicht)
  • kumarnitin(Nitin Kumar)
  • Davidchristiansen(David Christiansen)
  • 保罗·科洛特(保罗·埃文斯)
  • Kongo2002(Gregor Uhlenheuer)
  • Brannonking(Brannon King)
  • Alexandrerocco(Alexandre Rocco)
  • cbarbara
  • 阿萨夫拉曼(Assaf Raman)
  • csakshaug(克里斯蒂安·萨克肖(Christian Sakshaug))
  • 约翰曼
  • 贾罗达
  • SSBOISEN(Simon Skov Boisen)
  • 保尔杜兰(保罗·杜兰)
  • Pruiz(Pablo RuizGarcía)
  • 很棒的jamieburns
  • PSEABURY
  • Kevingessner(Kevin Gessner)
  • Iskomorokh(Igor Skomorokh)
  • Royjacobs(Roy Jacobs)
  • Robertmircea(Robert Mircea)
  • Markswiatek(Mark Swiatek)
  • FLQ(Frank Quednau)
  • ashd(灰D)
  • thanhhh
  • Algra(Alexey Gravanov)
  • 吉姆舒伯特(吉姆·舒伯特)
  • Gkathire
  • Mikaelwaltersson(Mikael Waltersson)
  • 阿斯纳尔(Alper)
  • Chucksavage(Chuck Savage)
  • 萨沙吉特(萨沙)
  • 弗洛伊克(Froyke)
  • DBHOBBS(Daniel Hobbs)
  • Bculberson(布拉德·库尔伯森)
  • AWR(安德鲁)
  • 平民(帕特里克)
  • Citndev(Sebastien Curutchet)
  • 网络普及
  • 乔堡(乔丹·霍西(Jordan Hayashi))
  • Bojanv55
  • IEB(Iain Ballard)
  • Pietervp(Pieter Van Parys)
  • 富兰克林
  • ckasabula(Chuck Kasabula)
  • Dortzur(Dor Tzur)
  • Allenarthurgay(Allen Gay)
  • Viceberg
  • Vansha(Ivan Korneliuk)
  • Aaronlerch(Aaron Lerch)
  • Glikoz
  • Danielcrenna(Daniel Crenna)
  • Stevegraygh(Steve Graygh)
  • JRMitch120(Jeff Mitchell)
  • Manuelnelson(Manuel Nelson)
  • Babcca(Petr Babicka)
  • JGEURTS(Jim Geurts)
  • Driis(Dennis Riis)
  • gshackles(格雷格s链)
  • JSONMEZ(John Sonmez)
  • Dchurchland(David Churchland)
  • SoftWX(Steve Hatchett)
  • ggeurts(gerke geurts)
  • Andrewrissing(Andrew Rissing)
  • jjavery(詹姆斯·杰维(James Javery))
  • Suremaker(Wojtek)
  • 芝士巴伦(Tomasz Cielecki)
  • Mikkelfish(Mikkel Fishman)
  • 约翰吉布(John Gibb)
  • Stabbylambda(David Stone)
  • Mikepugh(Mike Pugh)
  • 永久堡(Per Malmberg)
  • Adamralph(Adam Ralph)
  • Shamsulamry(Shamsul Amry)
  • Peterlazzarino(Peter Lazzarino)
  • 凯文·马特罗斯(Kevin Montrose)
  • MSARCHET(Michael Sarchet)
  • Jeffgabhart(Jeff Gabhart)
  • Pkudinov(Pavel Kudinov)
  • 永久堡(Per Malmberg)
  • 纳曼(尼克·米勒)
  • 莱昂·安德里亚(Leon Andria)
  • Kkolstad(Kenneth Kolstad)
  • Electricshaman(Jeff Smith)
  • Ecgan(Gan Eng Chin)
  • 蒂森(Tyson Stolarski)
  • Tischlda(David Tischler)
  • 连接器(Carl Heaily)
  • StartEleport
  • JFOSHEE(Jacob Foshee)
  • 纳丁(Mamaev Michail)
  • 悬崖
  • Somya(Somya Jain)
  • thinkbeforecoding(JérémieChassaing)
  • Paksys(Khalil Ahmad)
  • McGuinness(Karl McGuinness)
  • jpasichnyk(Jesse Pasichnyk)
  • 韦恩布朗特利(韦恩·布兰特利)
  • DCARTOON(Dan Cartoon)
  • Alexvodovoz(Alex Vodovoz)
  • Jluchiji(Denis Luchkin-Zhou)
  • Grexican
  • Akoslukacs(ÁkosLukács)
  • Medianick(尼克·琼斯)
  • Arhoads76
  • Dylanvdmerwe(Dylan VD Merwe)
  • Mattiasw2(Mattias)
  • Paultyng(Paul Tyng)
  • H2OMA(Jason Waterman)
  • 安纳顿(艾伦·牛顿)
  • Sami1971
  • 罗素奇德威克(Russell Chadwick)
  • 网络(Stefan Daugaard Poulsen)
  • filipw(filip wojcieszyn)
  • Ghuntley(Geoffrey Huntley)
  • Baramuse
  • Pdegenhardt(Phil DeGenhardt)
  • Captncraig(Craig Peterson)
  • Abtatery(Jae Sung Chung)
  • Biliktamas79
  • Garuma(JérémieLaval)
  • dsimunic
  • Adamfowleruk(Adam Fowler)
  • Bfriesen(Brian Friesen)
  • Roryf(Rory Fitzpatrick)
  • Stefandevo
  • gdassac
  • 金属10k
  • Cmelgarejo
  • 斯卡曼
  • Rossipedia(Bryan J. Ross)
  • Wimatihomer(WIM池)
  • 剑术
  • Adebisi-fa(Adebisi Foluso A.)
  • MBISCHOFF(M. Bischoff)
  • Ivanfioravanti(Ivan Fioravanti)
  • 抑制(基思·哈森)
  • 乔希尔(Josh Earl)
  • 弗里主义(迈克尔·弗里斯)
  • 软木粉
  • BCHAVEZ(Brian Chavez)
  • Nhhagen(Niels Henrik Hagen)
  • 达格马诺(达伦·奥斯特)
  • Chappoo(史蒂夫·查普曼)
  • 朱利希基夫(Julrich Kieffer)
  • 亚当克拉森(亚当·拉尔森)
  • Joero74(Joerg Rosenkranz)
  • ddotlic(drazen dotlic)
  • Chrismcv(Chris McVittie)
  • Marcioalthmann(MárcioFábioAlthmann)
  • Mmertsock(Mike Mertsock)
  • Johnkamau(John Kamau)
  • uhaciogullari(ufukHacıoğulları)
  • 戴维(Davybrion)(戴维·布里恩(Davy Brion))
  • Aleshi(Alexander Shiryaev)
  • Alexandryz(Alexandr Zaozerskiy)
  • Mistobaan(Fabrizio Milo)
  • Niemyjski(Blake Niemyjski)
  • Alexandernyquist(Alexander Nyquist)
  • McDuck76
  • Kojoru
  • 杰里米·布里奇(Jeremy-Bridges)(杰里米·布里奇(Jeremy Bridges))
  • Andreabalducci(Andrea Balducci)
  • 罗伯特·格雷林(Robert Greyling)
  • 罗伯利(Robert Beal)
  • Rivevedk(Mark Rasmussen)
  • Foresterh(杰米·休斯顿)
  • Peterkahl(Peter Kahl)
  • Helgel
  • 安东尼·卡尔(Anthony Carl)
  • MRJUL(Julien Lebosquain)
  • PWHE23(Paul Wheeler)
  • Aleksd
  • Miketrebilcock(Mike Trebilcock)
  • Markwoodhall(马克·伍德霍尔)
  • Theonlylawislove(Paul Knopf)
  • Callumvass(Callum Vass)
  • Bpruitt-Goddard
  • Gregpakes(Greg Pakes)
  • 卡里亚卡克(Caspian Canuck)
  • 默维尔
  • Pavelsavara(Pavel Savara)
  • 马克沃尔(Mark Walls)
  • Prasannavl(Prasanna Loganathar)
  • 威尔弗莱姆
  • Emiba
  • 幸运(Dmitry Svechnikov)
  • Hhandoko(Herdy Handoko)
  • Datawingsoftware
  • TAL952
  • 布雷特斯特
  • 凯文霍瓦德(凯文·霍华德)
  • Mattbutton(哑光按钮)
  • Torbenrahbekkoch(Torben Rahbek Koch)
  • 飞行员(飞行员马丁)
  • TSTADE(Toft Stade)
  • 尼尔茨(Jeff Sawatzky)
  • nhalm
  • Fhurta(Filip Hurta)
  • 迪斯巴南
  • X-Cray
  • 耶利米斯特勒(耶利米·斯塔德勒)
  • 孟买
  • Felipesabino(Felipe Sabino)
  • Xelom(ArılBozoluk)
  • Shiweichuan(Weichuan Shi)
  • Kojoru(Konstantin Yakushev)
  • Eddiegroves(Eddie Groves)
  • fetters5
  • rcollette(理查德·科莱特(Richard Collette))
  • Urihendler(Uri Hendler)
  • 劳伦斯(劳伦斯·埃文斯)
  • M-Andrew-Albright(安德鲁·奥尔布赖特)
  • Lee337(Lee Venkatsamy)
  • 卡萨
  • 不幸
  • rfvgyhn(克里斯)
  • 奥古斯特(Augustoproiete)(C. Augusto Proiete)
  • Sjuxax(Jeff Cook)
  • Madaleno(路易斯·马达洛(Luis Madaleno))
  • Yavosh(Yavor Shahpasov)
  • Fvoncina(Facundo Voncina)
  • Devrios(Dev Rios)
  • Bfkelsey(Ben Kelsey)
  • Maksimenko
  • 迪克森(Jarrod Dixon)
  • 卡尔(卡尔·艾哈迈德)
  • 曼尼(迈克尔·汉尼)
  • BCMS
  • Mgravell(Marc Gravell)
  • Lafama(Denis Ndwiga)
  • Jamesgroat(James Groat)
  • 詹姆斯尔(詹姆斯·坎宁安)
  • Remkoboschker(Remko Boschker)
  • 谢拉克尔
  • schmidt4brains(道格·施密特)
  • 乔普拉尔
  • AIFDSC(Stephan Desmoulin)
  • 尼克拉森(尼克拉尔)
  • 连接器(Carl Heaily)
  • ET1975(Eugene Tolmachev)
  • 巴兰巴尼
  • nhalm

类似的开源项目

类似的开源.NET项目用于开发或访问Web服务包括:

  • Nancy FX- .net的Sinatra启发的轻量级网络框架:
  • FUBU MVC-“前控制器”模式式MVC框架,旨在在ASP.NET上构建的Web应用程序中使用:
  • 休息夏普 – .NET

下载源码

通过命令行克隆项目:

git clone https://github.com/ServiceStack/ServiceStack.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

左子网 开发教程 ServiceStack https://www.zuozi.net/31733.html

WeiXinMPSDK
上一篇: WeiXinMPSDK
Blog.Core
下一篇: Blog.Core
常见问题

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务