메뉴 닫기

A simple REST service in C#

원문참조
(For an approach that uses ASP.NET MVC3 please go to this post)
In this post, we will see a simple implementation of a REST service.The service will consist of only one method and it can be consumed from your websites, directly from your browser or from a Desktop application.
When implementing a service you need to specify the following:

  • The service contract (the methods it offers).
  • How do you know which one to access from the URL given (URL Routing).
  • The implementation of the service.
  • How you will host the service.

Defining the Contract
Create a new Class Library Project and call it “RESTService.Lib”. Add references to “System.ServiceModel” and “System.ServiceModel.Web”. Create an Interface class called IRESTDemoServices and add the definitions of the methods that represent the services offered. Our interface will offer just one service as follows:

public interface IRESTDemoServices
{
    string GetClientNameById(string Id);
}

In order to tell the framework to treat this interface as a service we need to decorate it as follows:

[ServiceContract(Name = "RESTDemoServices")]
public interface IRESTDemoServices
{
    [OperationContract]
    string GetClientNameById(int Id);
}

Apparently we could offer more than one methods in our service by adding more methods in the interface.
Defining the URL to be used to access the service (URL Routing)
Although you can actually specify the routing within the interface it is better to create a new static class that will hold all your routing paths. Create a new static class named Routing and provide the following:

public static class Routing
{
    public const string GetClientRoute = "/Client/{id}";
}

Note the {id} element which specifies that the value supplied there should be matched with a parameter of the method of the interface. The connection of the URL Route to the method in the interface is achieved by decorating the interface with an attribute as follows:

[ServiceContract(Name = "RESTDemoServices")]
public interface IRESTDemoServices
{
    [OperationContract]
    [WebGet(UriTemplate = Routing.GetClientRoute, BodyStyle = WebMessageBodyStyle.Bare)]
    string GetClientNameById(string Id);
}

The WebGet attribute also specifies that the method will be accessed by a typical GET request to the specified URL.
Implementing the service
Implementing the service is as simple as creating a class that implements the service’s interface and decorating it with two specific attributes:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
                 ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestDemoServices:IRESTDemoServices
{
    public string GetClientNameById(string Id)
    {
        Random r = new Random();
        string ReturnString="";
        int Idnum=Convert.ToInt32(id);
        for (int i = 0; i < Idnum; i++)
            ReturnString += char.ConvertFromUtf32(r.Next(65, 85));
        return ReturnString;
    }
}

This is of course dummy code just to return a string. In real life this is the place to access the database and request for the name of the client with this id.
And this is it! Your service is ready to be hosted.
Hosting your service
The simplest solution is to create a console application that will act as the server of your service. Create a new project “Console Application” and add the same references as in the class library project along with the reference to the class library project itself. There is a possibility that you may need to change the “Target Framework” of your app to .NET Framework 4 from the one with the client profile in order to be able to include the “System.ServiceModel.Web” assembly. In the main method you host the service as follows:

static void Main(string[] args)
{
    RestDemoServices DemoServices = new RestDemoServices();
    WebServiceHost _serviceHost = new WebServiceHost(DemoServices,
                                                     new Uri("http://localhost:8000/DEMOService"));
    _serviceHost.Open();
    Console.ReadKey();
    _serviceHost.Close();
}

That is you initialize the service and then you host it under the root URL of http://localhost:8000/DEMOService. And off you go! Run the application and open your browser and type the following:
image
That’s it. Of course in a production environment you may have to open the port your service communicates.
Alternatively you may host this service in IIS. Create a new Empty Web Application Project. Add a reference to the class library project containing the Demo service and create an empty .svc file with the following contents (when you add it from the Add Item menu you will get some extra cs flies which you can safely delete):

<%@ ServiceHost Language="C#" Debug="true" Service="RESTService.Lib.RestDemoServices"
Factory="System.ServiceModel.Activation.WebServiceHostFactory"%>

This is it. Right Click on the svc file and select “View in Browser”. You will achieve the same result as before:
image
 
Deploying the .svc file to a web server is similar to deploying a webpage.
This was a very simple demonstration of creating a web service. I haven’t shown any POST requests neither I have demonstrated session management. But apart from those, I think you will see that there will be a lot of times that a simple web service with only GET Requests will be the only one thing needed and this approach will come in handy.

Again the project for this post can be downloaded here

277 Comments

  1. http://tinyurl.com/yanuw6l6

    Hi would you mind stating which blog platform you’re using?

    I’m going to start my own blog soon but I’m having a tough time
    choosing between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most
    blogs and I’m looking for something unique.
    P.S Apologies for getting off-topic but I had to ask!

  2. Deidra Masaitis

    I simply want to mention I am all new to weblog and seriously enjoyed your web-site. More than likely I’m going to bookmark your website . You absolutely come with fantastic stories. With thanks for revealing your blog site.

  3. best places to buy viagra

    Aw, this was a truly good message. In idea I would like to place in composing such as this in addition? taking some time as well as real initiative to make a very good article? but what can I claim? I put things off alot and also never appear to get something done.

  4. security screens cost

    Please let me know if you’re looking for a author for your weblog. You have some really good articles and I feel I would be a good asset. If you ever want to take some of the load off, I’d absolutely love to write some content for your blog in exchange for a link back to mine. Please blast me an e-mail if interested. Regards!

  5. best cbd oil sale

    After research a few of the post on your site now, and also I genuinely like your method of blogging. I bookmarked it to my bookmark web site list as well as will certainly be inspecting back quickly. Pls look into my web site as well as well as let me understand what you think.

  6. pop over to this site

    Great post. I learn something a lot more challenging on different blogs daily. It will certainly always be promoting to review material from various other writers and practice a something from their store. I?d prefer to utilize some with the material on my blog whether you don?t mind. Natually I?ll offer you a link on your web blog site. Many thanks for sharing.

  7. benefits of cbd hemp oil drops

    There are some fascinating moments in this post but I don?t understand if I see every one of them facility to heart. There is some credibility however I will hold point of view till I check into it even more. Excellent article, many thanks and also we desire much more! Contributed to FeedBurner also

  8. pts cbd capsules

    Youre so cool! I do not suppose Ive check out anything like this prior to. So great to discover somebody with some initial ideas on this subject. realy thanks for starting this up. this site is something that is needed on the web, somebody with a little creativity. helpful task for bringing something new to the web!

  9. browse around this web-site

    The following time I review a blog, I wish that it doesn’t disappoint me as much as this. I indicate, I know it was my choice to check out, yet I in fact assumed youd have something fascinating to say. All I listen to is a bunch of whimpering concerning something that you could repair if you werent as well hectic looking for attention.

  10. Google

    When I originally left a comment I seem to have clicked on the -Notify me when new comments are added- checkbox and from now on every time a comment is added I get four emails with the same comment. Perhaps there is an easy method you can remove me from that service? Cheers!

  11. Dorian Saitta

    Youre so awesome! I do not suppose Ive read anything similar to this before. So wonderful to discover somebody with some original ideas on this subject. realy thanks for starting this up. this internet site is something that is needed on the internet, someone with a little creativity. valuable job for bringing something new to the web!

  12. judi bola banyak bonus

    Having read this I believed it was very enlightening. I appreciate you finding the time and effort to put this short article together. I once again find myself spending way too much time both reading and posting comments. But so what, it was still worthwhile!

  13. dewajudiqq

    I must thank you for the efforts you’ve put in writing this website. I really hope to see the same high-grade content from you later on as well. In truth, your creative writing abilities has motivated me to get my own blog now 😉

  14. wap togel

    I’m very happy to uncover this website. I wanted to thank you for your time for this fantastic read!! I definitely liked every part of it and i also have you book-marked to look at new information on your website.

  15. dingdong 12d

    Nice post. I learn something new and challenging on sites I stumbleupon every day. It will always be useful to read through articles from other authors and practice a little something from other sites.

  16. wap togel

    Oh my goodness! Awesome article dude! Thank you so much, However I am encountering problems with your RSS. I don’t understand the reason why I am unable to join it. Is there anybody getting similar RSS problems? Anyone that knows the solution will you kindly respond? Thanx!!

  17. Rosita Mclearan

    I?m satisfied, I must state. Actually seldom do I run into a blog site that?s both enlightening and enjoyable, as well as let me tell you, you have hit the nail on the head. Your concept is superior; the issue is something that inadequate individuals are speaking intelligently about. I am very happy that I stumbled across this in my search for something connecting to this.

  18. Judi Bet88

    I’m very happy to find this great site. I want to to thank you for ones time for this fantastic read!! I definitely appreciated every bit of it and i also have you saved to fav to see new information on your blog.

  19. totobet sgp

    Hi, I do think this is an excellent web site. I stumbledupon it 😉 I am going to come back once again since I saved as a favorite it. Money and freedom is the best way to change, may you be rich and continue to guide other people.

  20. judi online24jam

    After exploring a handful of the blog posts on your site, I really like your technique of writing a blog. I bookmarked it to my bookmark site list and will be checking back soon. Please check out my web site too and tell me how you feel.

  21. read one punch man webcomic

    Can I simply say what a relief to discover someone who genuinely knows what they are discussing over the internet. You definitely understand how to bring a problem to light and make it important. More and more people have to check this out and understand this side of your story. I can’t believe you are not more popular since you certainly possess the gift.

  22. download joker123

    I was very pleased to discover this site. I wanted to thank you for your time just for this wonderful read!! I definitely really liked every part of it and I have you saved to fav to see new information in your website.

  23. daftar joker123

    Howdy! This article could not be written any better! Reading through this article reminds me of my previous roommate! He constantly kept preaching about this. I’ll send this post to him. Fairly certain he’s going to have a great read. Thank you for sharing!

  24. published here

    I found your blog website on google and examine a few of your very early blog posts. Remain to maintain the great run. I simply extra up your RSS feed to my MSN News Visitor. Seeking ahead to learning more from you later on!?

  25. Slot Pulsa

    I blog quite often and I truly thank you for your information. Your article has really peaked my interest. I am going to bookmark your site and keep checking for new details about once per week. I opted in for your RSS feed too.

  26. idn poker 88

    You’re so interesting! I don’t believe I’ve read through something like this before. So good to discover somebody with some original thoughts on this topic. Seriously.. thanks for starting this up. This site is one thing that is needed on the internet, someone with some originality!

  27. poker 88 idn

    Hello! I could have sworn I’ve been to this website before but after going through a few of the articles I realized it’s new to me. Nonetheless, I’m definitely delighted I stumbled upon it and I’ll be book-marking it and checking back regularly!

  28. apk idn poker

    An intriguing discussion is definitely worth comment. There’s no doubt that that you need to publish more on this topic, it may not be a taboo subject but usually people don’t talk about these issues. To the next! Many thanks!!

  29. login joker123

    I’m excited to uncover this website. I need to to thank you for your time for this particularly wonderful read!! I definitely appreciated every little bit of it and i also have you saved as a favorite to look at new things in your web site.

  30. Bandarqq

    Aw, this was an incredibly nice post. Taking the time and actual effort to create a very good article… but what can I say… I hesitate a lot and don’t manage to get anything done.

  31. joker slot apk

    A fascinating discussion is definitely worth comment. I do believe that you should publish more about this topic, it might not be a taboo matter but usually folks don’t speak about these subjects. To the next! All the best!!

  32. Artikel kesehatan mata

    Right here is the perfect site for everyone who really wants to understand this topic. You know so much its almost hard to argue with you (not that I actually would want to…HaHa). You certainly put a fresh spin on a topic which has been discussed for years. Excellent stuff, just wonderful!

  33. jasa import china

    Hi, I do believe this is a great website. I stumbledupon it 😉 I’m going to come back yet again since I book marked it. Money and freedom is the greatest way to change, may you be rich and continue to guide others.

  34. rumus lightroom

    I’m extremely pleased to uncover this site. I wanted to thank you for ones time due to this fantastic read!! I definitely savored every part of it and I have you book-marked to see new stuff in your website.

  35. cover lagu

    Can I just say what a comfort to find a person that actually understands what they are discussing over the internet. You certainly know how to bring an issue to light and make it important. More and more people ought to read this and understand this side of your story. I was surprised you’re not more popular given that you most certainly possess the gift.

  36. daftar pkv games

    I blog often and I truly thank you for your content. This great article has really peaked my interest. I am going to bookmark your website and keep checking for new details about once a week. I opted in for your RSS feed as well.

  37. dingdong

    After going over a number of the blog articles on your web page, I honestly like your way of writing a blog. I bookmarked it to my bookmark website list and will be checking back soon. Please check out my web site too and tell me what you think.

  38. situs judi online

    Hello there! This post could not be written any better! Going through this post reminds me of my previous roommate! He continually kept preaching about this. I most certainly will forward this information to him. Fairly certain he’s going to have a very good read. Thanks for sharing!

  39. KelasJudi

    An outstanding share! I have just forwarded this onto a co-worker who was conducting a little research on this. And he in fact ordered me lunch due to the fact that I discovered it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanx for spending the time to talk about this topic here on your blog.

  40. situs poker

    Having read this I believed it was very informative. I appreciate you finding the time and energy to put this information together. I once again find myself personally spending a lot of time both reading and commenting. But so what, it was still worthwhile!

  41. partner resmi bwin dan bet365

    Right here is the perfect site for everyone who wants to understand this topic. You know a whole lot its almost hard to argue with you (not that I personally will need to…HaHa). You certainly put a new spin on a topic that’s been written about for many years. Great stuff, just wonderful!

  42. s128.apk

    This is the perfect website for anybody who really wants to understand this topic. You understand so much its almost hard to argue with you (not that I really would want to…HaHa). You definitely put a new spin on a topic which has been discussed for many years. Wonderful stuff, just great!

  43. Domino99 Online

    After I initially commented I appear to have clicked the -Notify me when new comments are added- checkbox and from now on whenever a comment is added I get four emails with the exact same comment. Is there a way you are able to remove me from that service? Appreciate it!

  44. sbobet88 bola

    Right here is the perfect website for anybody who really wants to find out about this topic. You understand so much its almost tough to argue with you (not that I personally would want to…HaHa). You certainly put a brand new spin on a topic which has been discussed for many years. Great stuff, just great!

  45. s128

    Nice post. I learn something new and challenging on blogs I stumbleupon on a daily basis. It’s always useful to read through content from other writers and use a little something from their websites.

  46. Situs Bandarq

    I’m impressed, I must say. Rarely do I encounter a blog that’s both equally educative and interesting, and without a doubt, you’ve hit the nail on the head. The issue is something that not enough men and women are speaking intelligently about. I am very happy that I stumbled across this in my search for something concerning this.

  47. Judi Online

    An impressive share! I have just forwarded this onto a co-worker who had been conducting a little research on this. And he in fact ordered me dinner simply because I stumbled upon it for him… lol. So let me reword this…. Thanks for the meal!! But yeah, thanx for spending the time to discuss this issue here on your web site.

  48. Situs Judi Online

    This is the perfect website for anyone who wants to understand this topic. You know a whole lot its almost hard to argue with you (not that I personally will need to…HaHa). You definitely put a brand new spin on a subject that has been discussed for decades. Great stuff, just great!

  49. Situs Dominoqq

    I really love your website.. Great colors & theme. Did you make this site yourself? Please reply back as I’m attempting to create my own blog and would love to know where you got this from or just what the theme is called. Kudos!

  50. Slot Online

    Good post. I learn something totally new and challenging on websites I stumbleupon everyday. It will always be exciting to read through articles from other writers and use something from other sites.

  51. judi bola terpercaya

    Having read this I thought it was rather informative. I appreciate you taking the time and effort to put this short article together. I once again find myself spending way too much time both reading and commenting. But so what, it was still worthwhile!

  52. s128 sabung ayam

    After checking out a few of the blog articles on your web site, I really appreciate your way of writing a blog. I saved it to my bookmark webpage list and will be checking back soon. Take a look at my website as well and tell me what you think.

  53. s128.apk

    Greetings, I believe your blog might be having browser compatibility problems. Whenever I look at your web site in Safari, it looks fine however, if opening in IE, it’s got some overlapping issues. I simply wanted to give you a quick heads up! Other than that, fantastic website!

  54. judi slot online

    After I originally left a comment I seem to have clicked on the -Notify me when new comments are added- checkbox and from now on each time a comment is added I get four emails with the same comment. There has to be a means you are able to remove me from that service? Appreciate it!

  55. slot deposit pulsa

    After exploring a number of the articles on your blog, I honestly appreciate your technique of blogging. I saved it to my bookmark website list and will be checking back in the near future. Please check out my website as well and tell me how you feel.

  56. daftar totobet online

    Good day! I could have sworn I’ve been to this blog before but after going through a few of the posts I realized it’s new to me. Anyways, I’m certainly pleased I found it and I’ll be bookmarking it and checking back regularly!

  57. judi online

    After I originally commented I seem to have clicked the -Notify me when new comments are added- checkbox and now every time a comment is added I recieve four emails with the same comment. Perhaps there is a way you can remove me from that service? Thanks!

  58. dominobet

    When I initially left a comment I seem to have clicked the -Notify me when new comments are added- checkbox and from now on whenever a comment is added I get 4 emails with the exact same comment. Perhaps there is an easy method you can remove me from that service? Cheers!

  59. Mega Bandar

    I blog often and I seriously appreciate your information. This article has truly peaked my interest. I am going to take a note of your site and keep checking for new details about once a week. I opted in for your Feed as well.

  60. solusiponsel.com

    After I initially commented I appear to have clicked on the -Notify me when new comments are added- checkbox and now whenever a comment is added I get four emails with the exact same comment. Perhaps there is a way you are able to remove me from that service? Thanks a lot!

  61. dominobet

    Oh my goodness! Incredible article dude! Thanks, However I am encountering issues with your RSS. I don’t understand why I cannot join it. Is there anybody getting identical RSS problems? Anyone that knows the answer will you kindly respond? Thanx!!

  62. elevenconsignment

    Oh my goodness! Incredible article dude! Many thanks, However I am experiencing difficulties with your RSS. I don’t understand the reason why I am unable to subscribe to it. Is there anybody getting the same RSS issues? Anybody who knows the answer can you kindly respond? Thanks!!

  63. visit

    I?m amazed, I should say. Truly seldom do I come across a blog site that?s both educative as well as amusing, and also let me inform you, you have hit the nail on the head. Your suggestion is exceptional; the problem is something that not enough individuals are talking wisely about. I am very happy that I came across this in my search for something associating with this.

  64. totobet login

    Howdy! This blog post couldn’t be written much better! Looking through this article reminds me of my previous roommate! He always kept talking about this. I’ll send this information to him. Fairly certain he’ll have a very good read. Thanks for sharing!

  65. m11hkb.net

    You are so awesome! I don’t believe I have read through a single thing like this before. So great to find another person with unique thoughts on this subject matter. Seriously.. thank you for starting this up. This website is something that is required on the internet, someone with a little originality!

  66. http://www.kamera4d.org/

    Next time I read a blog, Hopefully it does not fail me as much as this one. After all, Yes, it was my choice to read through, nonetheless I really believed you would probably have something helpful to talk about. All I hear is a bunch of complaining about something that you could fix if you were not too busy searching for attention.

  67. sabung ayam s128

    You’re so cool! I don’t believe I’ve read a single thing like that before. So good to discover somebody with some genuine thoughts on this subject. Seriously.. thank you for starting this up. This site is one thing that is needed on the internet, someone with a little originality!

  68. resep masakanku

    Good day! I could have sworn I’ve visited your blog before but after browsing through many of the posts I realized it’s new to me. Anyhow, I’m certainly delighted I discovered it and I’ll be book-marking it and checking back frequently!

  69. Judi Bola Joinpoker.com

    An outstanding share! I’ve just forwarded this onto a colleague who had been conducting a little homework on this. And he in fact ordered me lunch because I stumbled upon it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanx for spending time to talk about this subject here on your website.

  70. joker123.net

    I’m very pleased to uncover this site. I wanted to thank you for ones time for this fantastic read!! I definitely appreciated every part of it and i also have you book-marked to check out new stuff on your blog.

  71. joker388.net

    You are so awesome! I do not believe I have read something like this before. So nice to find another person with some genuine thoughts on this issue. Seriously.. many thanks for starting this up. This web site is something that is needed on the web, someone with some originality!

  72. joker 188

    I blog often and I genuinely thank you for your content. Your article has truly peaked my interest. I’m going to book mark your blog and keep checking for new details about once a week. I subscribed to your Feed too.

  73. joker 123

    The next time I read a blog, I hope that it won’t disappoint me just as much as this one. After all, Yes, it was my choice to read through, however I truly believed you would probably have something useful to say. All I hear is a bunch of crying about something that you can fix if you were not too busy searching for attention.

  74. pragmatic play

    Can I simply just say what a relief to discover someone that truly knows what they are discussing on the web. You actually realize how to bring a problem to light and make it important. More people should check this out and understand this side of the story. I was surprised you are not more popular given that you certainly possess the gift.

  75. fafa slot

    Greetings, There’s no doubt that your blog could possibly be having web browser compatibility issues. When I take a look at your blog in Safari, it looks fine however, when opening in IE, it has some overlapping issues. I just wanted to provide you with a quick heads up! Apart from that, great blog!

  76. joker 123 slot

    Hi there! This article couldn’t be written much better! Looking through this post reminds me of my previous roommate! He always kept preaching about this. I will forward this information to him. Fairly certain he’s going to have a very good read. Thanks for sharing!

  77. joker123.net

    You are so cool! I do not suppose I’ve read a single thing like this before. So wonderful to find somebody with some genuine thoughts on this subject. Really.. thank you for starting this up. This site is something that’s needed on the internet, someone with a bit of originality!

  78. joker123

    Hello there! This blog post couldn’t be written any better! Looking through this post reminds me of my previous roommate! He constantly kept talking about this. I most certainly will forward this post to him. Fairly certain he will have a good read. Thanks for sharing!

  79. joker123.net

    I blog frequently and I truly thank you for your information. Your article has truly peaked my interest. I will bookmark your blog and keep checking for new details about once per week. I subscribed to your RSS feed as well.

  80. joker123

    I was more than happy to uncover this website. I wanted to thank you for your time just for this wonderful read!! I definitely loved every bit of it and i also have you bookmarked to look at new information on your website.

  81. joker123

    This is the perfect website for everyone who wishes to understand this topic. You realize so much its almost tough to argue with you (not that I actually would want to…HaHa). You certainly put a new spin on a topic that’s been written about for years. Excellent stuff, just great!

  82. joker123 slot

    When I originally commented I seem to have clicked on the -Notify me when new comments are added- checkbox and now each time a comment is added I recieve four emails with the exact same comment. Perhaps there is a way you can remove me from that service? Appreciate it!

  83. ebolafc.net

    An outstanding share! I have just forwarded this onto a coworker who was doing a little research on this. And he actually ordered me dinner simply because I stumbled upon it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanx for spending time to discuss this issue here on your internet site.

  84. Samsung drivers

    Hello there, I do think your site might be having internet browser compatibility issues. When I take a look at your website in Safari, it looks fine but when opening in IE, it has some overlapping issues. I simply wanted to provide you with a quick heads up! Other than that, wonderful blog!

  85. Canon Drivers

    I was excited to discover this great site. I need to to thank you for ones time for this particularly fantastic read!! I definitely appreciated every part of it and I have you saved to fav to look at new stuff on your web site.

  86. khazanahpromosi.com

    Having read this I thought it was very informative. I appreciate you spending some time and effort to put this short article together. I once again find myself spending a lot of time both reading and commenting. But so what, it was still worth it!

  87. Sofa Sudut Minimalis

    After looking over a handful of the blog posts on your blog, I really like your way of blogging. I saved as a favorite it to my bookmark site list and will be checking back in the near future. Please check out my website as well and tell me how you feel.

  88. cheapest flight

    I like the valuable information you provide in your articles.
    I will bookmark your weblog and check again here regularly.
    I am quite certain I will learn plenty of new stuff right here!
    Best of luck for the next!

  89. https://ponseloka.com

    May I simply just say what a relief to uncover somebody who truly understands what they’re discussing on the internet. You definitely understand how to bring an issue to light and make it important. More and more people ought to check this out and understand this side of your story. It’s surprising you are not more popular because you surely possess the gift.

  90. https://www.aplikasidewasa.com

    The very next time I read a blog, I hope that it does not disappoint me just as much as this one. After all, I know it was my choice to read, however I actually believed you’d have something helpful to talk about. All I hear is a bunch of moaning about something you could possibly fix if you weren’t too busy seeking attention.

  91. sahabatqq.mobi

    I’m amazed, I must say. Rarely do I come across a blog that’s both educative and amusing, and without a doubt, you’ve hit the nail on the head. The problem is something not enough men and women are speaking intelligently about. Now i’m very happy that I stumbled across this in my search for something concerning this.

  92. jokerwin123

    An impressive share! I’ve just forwarded this onto a colleague who had been conducting a little homework on this. And he actually bought me dinner due to the fact that I stumbled upon it for him… lol. So allow me to reword this…. Thanks for the meal!! But yeah, thanks for spending some time to discuss this issue here on your site.

  93. joker123 apk

    Having read this I thought it was rather informative. I appreciate you spending some time and effort to put this information together. I once again find myself spending a lot of time both reading and posting comments. But so what, it was still worthwhile!

  94. cara daftar sbobet

    Oh my goodness! Amazing article dude! Thank you so much, However I am going through troubles with your RSS. I don’t understand why I cannot join it. Is there anybody else getting the same RSS issues? Anyone that knows the answer will you kindly respond? Thanx!!

  95. Google

    The next time I read a blog, Hopefully it won’t disappoint me just as much as this particular one. After all, I know it was my choice to read, but I truly believed you’d have something interesting to say. All I hear is a bunch of whining about something that you could possibly fix if you were not too busy searching for attention.

  96. their website

    Aw, this was a truly nice post. In suggestion I want to put in composing like this furthermore? taking time and also actual effort to make an excellent post? however what can I claim? I put things off alot and also never appear to obtain something done.

댓글 남기기

이메일은 공개되지 않습니다.