2011-05-08 112 views
1

如果它有一个特定的自定义属性,有什么办法强制类实现一个接口?如何定义类类型的约束如果它具有自定义属性?

我想要编译时错误,如果具有特定属性的类没有实现特定的接口。

[myAttrib] 
public MyClass:IMyInterface 
{ 

} 

如果myClass不是typeof(IMyInterface),我将在编译时发生错误。

感谢,

+0

您可以创建一个从接口驱动的抽象类,并从该抽象类获取最终的类驱动器。 – 2011-05-08 09:35:48

回答

0

在性能的情况下,你可以创建一个抽象类继承的接口,并从抽象类得到你的最后一类的车程。

看一看

public interface Test 
    { 
     string Name { get; set; } 
    } 

    public abstract class Test1 : Test 
    { 
     public abstract string Name { get; set; } 
    } 

    public class Test2 : Test1 
    { 

    } 

对于自定义属性,你可以做

public class Alias : System.Attribute 
    { 
    string[] _types; 

    public Alias(params string[] types) 
    { 
     this.Types = types; 
    } 
    public Alias() 
    { 
     this.Types = null; 
    } 

    public string[] Types 
    { 
     get { return _types; } 
     set { _types = value; } 
    } 
    } 

    public interface Test 
    { 
     Alias Attrib{ get;} 
    } 

    public abstract class Test1 : Test 
    { 
     public abstract Alias Attrib { get; } 
    } 

    public class Test2 : Test1 
    { 

    } 

希望我回答你的问题。

+0

嗨阿卜杜尔,谢谢你回复 但是好像你没有得到我的问题很好 我说[自定义属性]不属性 – hm1984ir 2011-05-08 10:09:37

相关问题