Tag: generics

通过Generic类型参数访问属性

我正在尝试为我的模型创建一个通用存储库。 目前我有3种不同的型号,它们之间没有任何关系。 (联系人,备注,提醒)。 class Repository where T:class { public IQueryable SearchExact(string keyword) { //Is there a way i can make the below line generic //return db.ContactModels.Where(i => i.Name == keyword) //I also tried db.GetTable().Where(i => i.Name == keyword) //But the variable i doesn’t have the Name property since it would know it only in the […]

如何使用Castle Windsor注册通用装饰器?

我需要使用相应的DeadlockRetryCommandHandlerDecorator类型基于ICommandHandler类型来装饰所有类型 我试过这个解决方案,但遗憾的是它不起作用。 container.Register( Component.For(typeof(ICommandHandler)) .ImplementedBy(typeof(DeadlockRetryCommandHandlerDecorator))); container.Register( AllTypes.FromThisAssembly() .BasedOn(typeof(ICommandHandler)) .WithService.Base()); 如何注册通用装饰器( DeadlockRetryCommandHandlerDecorator )来包装所有通用ICommandHandler实现?

在C#generics中,Java通配符的等价物是什么

我正在开发一个应用程序,我需要调用generics类的方法,而不关心实例的实际类型。 像下面的Java代码: public class Item{ private T item; public doSomething(){…} } … public void processItems(Item[] items){ for(Item item : items) item.doSomething(); } 当时我很着急,所以我通过使用我需要调用的方法定义一个接口并使generics类实现它来解决我的问题。 public interface IItem { void doSomething(); } public class Item : IItem { private T item; public void doSomething(){…} } … public void processItems(IItem[] items) { foreach(IItem item in items) item.doSomething(); } […]

WCF。 服务通用方法

如何在wcf服务中使用generics方法? 我写了这段代码: [OperationContract] void AddItem(T item); 但是我收到以下错误: 类型“T”无法导出为架构类型,因为它是一个开放的generics类型。 如果所有generics参数类型都是实际类型,则只能导出generics类型。

new()是什么意思?

WCF RIA Services中有一个AuthenticationBase类。 类定义如下: // assume using System.ServiceModel.DomainServices.Server.ApplicationServices public abstract class AuthenticationBase : DomainService, IAuthentication where T : IUser, new() new()在此代码中的含义是什么?

如何编写在C#中实现给定接口的通用容器类?

上下文:.NET 3.5,VS2008。 我不确定这个问题的标题,所以也可以自由评论标题:-) 这是场景:我有几个类,比如Foo和Bar,它们都实现了以下接口: public interface IStartable { void Start(); void Stop(); } 现在我想要一个容器类,它在构造函数中获取一个IEnumerable 作为参数。 反过来,这个类也应该实现IStartable接口: public class StartableGroup : IStartable // this is the container class { private readonly IEnumerable startables; public StartableGroup(IEnumerable startables) { this.startables = startables; } public void Start() { foreach (var startable in startables) { startable.Start(); } } public void […]

如何编写通用的匿名方法?

具体来说,我想写这个: public Func<IList, T> SelectElement = list => list.First(); 但是我在T处遇到语法错误。 我不能拥有通用的匿名方法吗?

.NET Casting通用列表

有人可以向我解释为什么在.NET 2.0中我有一个接口, IPackable和一个实现该接口OrderItem的类,当我有一个接收List ,传入List的List不行? 有谁知道我怎么能完成这个function? 码: public interface IPackable { double Weight{ get; } } public class OrderItem : IPackable public List GetForShipWeight(List packages) { double totalWeight = 0; foreach (IPackable package in packages) { totalWeight += package.Weight; } } 以下代码不起作用。 List orderItems = new List(); List shipMethods = GetForShipWeight(orderItems);

为什么这个generics约束在它似乎有一个循环引用时编译

我在csharp中为MVCContrib Html帮助器编写了一个扩展方法,并对通用约束的forms感到惊讶,从表面看它通过类型参数循环引用自身。 据说这种方法可以根据需要进行编译和工作。 我希望有人解释为什么这有效,如果存在更直观的直观语法,如果没有人知道为什么? 这是编译和function代码,但我删除了T的例子,因为它使问题蒙上阴影。 以及使用List 的类似方法。 namespace MvcContrib.FluentHtml { public static class FluentHtmlElementExtensions { public static TextInput ReadOnly(this TextInput element, bool value) where T: TextInput { if (value) element.Attr(“readonly”, “readonly”); else ((IElement)element).RemoveAttr(“readonly”); return element; } } } /*analogous method for comparison*/ public static List AddNullItem(this List list, bool value) where T : List { […]

用于generics类型的ASP.NET MVC模型绑定器

是否可以为generics类型创建模型绑定器? 例如,如果我有一个类型 public class MyType 有没有办法创建一个适用于任何类型的MyType的自定义模型绑定器? 谢谢,内森