C# IronPython属性不可调用

C# IronPython属性不可调用,c#,attributes,decorator,asp.net-web-api2,ironpython,C#,Attributes,Decorator,Asp.net Web Api2,Ironpython,我对以下IronPython属性有问题(RouteAttribute): 如果我创建DemoController类的实例,我总是会收到错误消息:RouteAttribute不可调用。我不会自己创建DemoController的实例,asp.net web api 2会尝试这样做 也许有人对IronPython中的属性有一些经验 编辑 我的目标是混合使用C#和IronPython API控制器。我像这样注册控制器(c#的工作原理): controller=newdictionary(); cont

我对以下IronPython属性有问题(
RouteAttribute
):

如果我创建DemoController类的实例,我总是会收到错误消息:
RouteAttribute不可调用
。我不会自己创建
DemoController
的实例,asp.net web api 2会尝试这样做

也许有人对IronPython中的属性有一些经验

编辑

我的目标是混合使用C#和IronPython API控制器。我像这样注册控制器(c#的工作原理):

controller=newdictionary();
controller.Add(“General”,new System.Web.Http.Controllers.HttpControllerDescriptor(config,“General”,typeof(controller.GeneralController));
foreach(dbContext.LoadData中的DBScript脚本(optWherePart:“ScriptContentType=1”))
{ 
System.Diagnostics.Debugger.Launch();
var sc=ScriptManager.Singleton.CreateScript(script.ScriptName,ScriptLanguage.IronPython);
var clrInst=sc.GetClassInstance(script.ScriptName+“Clr”);
controller.Add(script.ScriptName.Replace(“controller”),new System.Web.Http.Controllers.HttpControllerDescriptor(config,
ScriptName.Replace(“Controller”,”),clrInst.getType();
}
EDIT2

我正在使用最新版本的IronPython(2.7.5)


谢谢大家!

这不起作用,因为dlr,依赖注入机制不能与ironpython一起工作。所以不要工作

import clr
import System
from System.Web.Http import HttpGetAttribute, ApiController, RouteAttribute


class DemoController(ApiController):

    @RouteAttribute("~/api/test")
    def test(self):
        return "Hallo Welt!"

class DemoControllerClr:

    def getType(self):
        return clr.GetClrType(DemoController)
controller = new Dictionary<string, System.Web.Http.Controllers.HttpControllerDescriptor>();

controller.Add("General", new System.Web.Http.Controllers.HttpControllerDescriptor(config, "General", typeof(Controller.GeneralController)));

foreach (DBScript script in dbContext.LoadData<DBScript>(optWherePart: "ScriptContentType = 1"))
{ 
    System.Diagnostics.Debugger.Launch();

    var sc = ScriptManager.Singleton.CreateScript(script.ScriptName, ScriptLanguage.IronPython);

    var clrInst = sc.GetClassInstance(script.ScriptName + "Clr");

    controller.Add(script.ScriptName.Replace("Controller", ""), new System.Web.Http.Controllers.HttpControllerDescriptor(config,
        script.ScriptName.Replace("Controller", ""), clrInst.getType()));
}