Skip to content

Instantly share code, notes, and snippets.

@rudism
Created November 4, 2015 20:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rudism/8913d8b830ed1a28ca3d to your computer and use it in GitHub Desktop.
Save rudism/8913d8b830ed1a28ca3d to your computer and use it in GitHub Desktop.
namespace testattr
{
using System;
using Funq;
using ServiceStack;
using ServiceStack.Web;
using ServiceStack.Text;
class AppHost : AppSelfHostBase
{
public AppHost() : base("AttributeTest", typeof(AppHost).Assembly) { }
public override void Configure(Container container) { }
}
[AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
class TestAttribute : RequestFilterAttribute
{
public override void Execute(IRequest req, IResponse res, object requestDto)
{
throw new Exception("attribute was executed");
}
}
[Route("/test/without/attribute")]
class TestWithout : IReturnVoid { }
[Route("/test/with/attribute")]
class TestWith : IReturnVoid { }
class TestService : Service
{
public void Get(TestWithout request)
{
using(var svc = base.ResolveService<TestService>())
{
svc.Get(new TestWith());
}
}
[Test]
public void Get(TestWith request)
{
}
}
class MainClass
{
public static void Main (string[] args)
{
new AppHost().Init().Start("http://localhost:9090/");
"Started apphost on port 9090".Print();
using(var client = new JsonServiceClient("http://localhost:9090"))
{
"Calling /test/without/attribute...".Print();
client.Get<IReturnVoid>("/test/without/attribute");
"Calling /test/with/attribute...".Print();
client.Get<IReturnVoid>("/test/with/attribute");
}
}
}
}
@rudism
Copy link
Author

rudism commented Nov 4, 2015

Output:

[rudism@rudxgx testattr]$ mono --debug bin/Debug/testattr.exe
Started apphost on port 9090
Calling /test/without/attribute...
Calling /test/with/attribute...

Unhandled Exception:
ServiceStack.WebServiceException: Exception
  at ServiceStack.ServiceClientBase.ThrowWebServiceException[ErrorResponse] (System.Exception ex, System.String requestUri) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.ThrowResponseTypeException[IReturnVoid] (System.Object request, System.Exception ex, System.String requestUri) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.HandleResponseException[IReturnVoid] (System.Exception ex, System.Object request, System.String requestUri, System.Func`1 createWebRequest, System.Func`2 getResponse, IReturnVoid& response) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.Send[IReturnVoid] (System.String httpMethod, System.String relativeOrAbsoluteUrl, System.Object request) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.Get[IReturnVoid] (System.String relativeOrAbsoluteUrl) [0x00000] in <filename unknown>:0
  at testattr.MainClass.Main (System.String[] args) [0x00064] in /home/rudism/source/testattr/Program.cs:60
[ERROR] FATAL UNHANDLED EXCEPTION: ServiceStack.WebServiceException: Exception
  at ServiceStack.ServiceClientBase.ThrowWebServiceException[ErrorResponse] (System.Exception ex, System.String requestUri) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.ThrowResponseTypeException[IReturnVoid] (System.Object request, System.Exception ex, System.String requestUri) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.HandleResponseException[IReturnVoid] (System.Exception ex, System.Object request, System.String requestUri, System.Func`1 createWebRequest, System.Func`2 getResponse, IReturnVoid& response) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.Send[IReturnVoid] (System.String httpMethod, System.String relativeOrAbsoluteUrl, System.Object request) [0x00000] in <filename unknown>:0
  at ServiceStack.ServiceClientBase.Get[IReturnVoid] (System.String relativeOrAbsoluteUrl) [0x00000] in <filename unknown>:0
  at testattr.MainClass.Main (System.String[] args) [0x00064] in /home/rudism/source/testattr/Program.cs:60

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment