これまでのところT
に属性[Serializable]
がある場合、typeof(T).IsSerializable
が真とみなされています。 (そして、混乱している名前ISerializable
とは無関係です)。
最初の仮定は間違っています。 IsSerializable
はもっと複雑で、私はそれが何のために使われるべきかを理解していません。 IsSerializable
は本当ですが、型が直列化可能ではありませんなぜ列挙可能なのは<T> Tのためにシリアライズ可能ではないですか?
例:
using NUnit.Framework;
[TestFixture]
internal class Tests {
private class MyClass {}
[Test]
public void TestIsNotSerialisable()
{
// Passes
Assert.That(typeof(MyClass).IsSerializable, Is.False);
}
[Test]
public void TestIsNotSerialisableArray()
{
// Fails (is Serializable)
Assert.That(typeof(MyClass[]).IsSerializable, Is.False);
}
[Test]
public void TestIsNotSerialisableList()
{
// Fails (is Serializable)
Assert.That(typeof(List<MyClass>).IsSerializable, Is.False);
}
}
がそうでない場合でも、T[]
はなぜシリアル化可能ですか?
は '一覧' 'T 'が直列化可能である場合、シリアライズと考えられるが、T'のプロパティのタイプ'の一つではありませんでしょうか?あなたはこの質問に対する答えをどうしますか?どのような問題を解決しようとしていますか? –
CodeCaster