1

これは私がやろうとしていることです:

public class NormalClass
{
    [XmlAttribute]
    public int Example;
}

[XmlRoot]
public class GenericClass<T> where T : HasXmlElementAttribute
{
    [XmlArray]
    public List<T> Variables;
}

where T : IXmlSerializable うまくいくかもしれないと思ったのですが、うまくいきませんでした。

これは可能ですか?もしそうなら、適切な方法は何ですか?

追加の考え/編集

これと同じ目標を達成する方法はありますか? xml シリアル化できるクラスのみを許可する方法はありますか?

ありがとう

4

2 に答える 2

1

属性は型システムの一部ではありません。

属性の存在に基づいて型パラメーターを制約することはできません。


補足: この正当化はまったく有効ではありません。コンストラクターも型システムの一部ではありません: new()が、有効な制約です。

于 2013-06-17T21:53:53.100 に答える