我正在阅读有关ASP.NET Web API框架的示例,以及如何创建模型绑定器以在请求期间绑定参数。
我的问题是,你如何编写一个c#class /方法来接受一个看起来像这样的参数:
public HttpResponseMessage Get([ModelBinder(typeof(GeoPointModelBinder))] GeoPoint location)
如果您可以简要解释一下这种语法及其背后的一般概念,那就太棒了。
参考:http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
答案 0 :(得分:1)
using System;
using System.Reflection;
namespace Test081204
{
[AttributeUsage(AttributeTargets.Parameter)]
public class SomeCoolAttribute : System.Attribute
{
public readonly int Val;
public SomeCoolAttribute(int val)
{
Val = val;
}
}
class Test
{
public void Run([SomeCool(123)] string value)
{
// Prints "In Run: test123"
Console.WriteLine("In Run: " + value);
}
}
class Program
{
public static void Main()
{
var parameters = typeof(Test).GetMethod("Run").GetParameters();
var attr = parameters[0].GetCustomAttribute(typeof(SomeCoolAttribute)) as SomeCoolAttribute;
// Prints "123"
Console.WriteLine("In Main: " + attr.Val);
new Test().Run("test" + attr.Val.ToString());
}
}
}