如何使用序列化属性识别类型?

Ale*_*ell 2 c# serialization

我需要定义一个方法参数,理想情况下,该参数应该只接受用该Serializable属性修饰的对象参数.方法任务是将object参数持久化为XML文档.

我知道我最终可以检查SerializationException,但我宁愿能够巧妙地将其定义为方法合同的一部分.那么,有什么方法可以隔离用这个属性装饰的类型吗?

ali*_*ray 5

一种选择是使用该类的IsSerializable属性Type:

public void Serialize(object obj)
{
    if (obj.GetType().IsSerializable)
    {
        // do work
    }
}
Run Code Online (Sandbox Code Playgroud)