小编kha*_*hon的帖子

继承的Web API API控制器

我有几堂课

Square : Rectangle : Shape (abstract)
Run Code Online (Sandbox Code Playgroud)

我有一个继承自ApiController的基本控制器,我想使用它.

public abstract class BaseController<T> : ApiController where T : class
{
    public abstract IEnumerable<T> Get()
    ...
}
Run Code Online (Sandbox Code Playgroud)

public class DerivedController : BaseController<Rectangle>
{
    public override IEnumerable<Rectangle> Get()
    ...
}

public class AnotherDerivedController : BaseController<Square>
{
    public new IEnumerable<Square> Get()
    ...
}
Run Code Online (Sandbox Code Playgroud)

/ api/rectangle将正确调用 IEnumerable<Rectangle> Get()

/ api/square会给我一个错误:

Multiple actions were found that match the request: 
System.Linq.IEnumerable`1[Square] Get() on type Web.Api.Controllers.AnotherDerivedController 
System.Linq.IEnumerable`1[Rectangle] Get() on type Web.Api.Controllers.DerivedController
Run Code Online (Sandbox Code Playgroud)

如果我public new IEnumerable<Square> Get()改为 …

c# asp.net-mvc-4 asp.net-web-api

8
推荐指数
1
解决办法
5093
查看次数

实例化一个类对象并初始化一个列表

有没有办法可以用现有项目初始化类中的列表?

我基本上想要实例化一个类对象并初始化一个列表,其中包含现有和新项目中已有的一些元素.

public class Item
{
    public string Property {get; set;}
}

public class MyClass
{
    public virtual IEnumerable<Item> Items {get; set;}
}

var itemToAdd = context.Items( i => i.Property == "Desired" );

MyClass myclass = new MyClass()
{
    Items = new List<Item>() 
    {
        new List<Item> (),
        { 
            Property = "New" 
        },
        // Would like itemToAdd to be added here when I create a new List.
    }
};
Run Code Online (Sandbox Code Playgroud)

c# list object

1
推荐指数
1
解决办法
6261
查看次数

标签 统计

c# ×2

asp.net-mvc-4 ×1

asp.net-web-api ×1

list ×1

object ×1