貝塞爾we can't use generic type attributes,有沒有替代解決方案?也許一個例子是有幫助的討論:泛型類型屬性的任何替代解決方案?
public abstract class ErrorHandler { }
public class AccessHandler : ErrorHandler { }
public class ConnectionHandler : ErrorHandler { }
public class OtherHandler : ErrorHandler { }
public class CoHandler<T> : Attribute where T : ErrorHandler
{
public T GetHandler()
{
return default(T); // just an example
}
}
public enum Errors
{
[CoHandler<AccessHandler>()]
Access,
[CoHandler<ConnectionHandler>()]
Connection,
[CoHandler<OtherHandler>()]
Other
}
這是最好的方式,與上面的其他答案進行比較。 – 2010-10-03 04:38:03