Причина, по которой IntPtr не сериализуем, состоит в том, что он вообще не имеет никакого смысла, когда вы удаляете его из его среды.
Если вы сериализуете дескриптор окна, это имеет смысл, только если выдесериализовать его в том же месте, пока окно еще существует.Если вы десериализовали его на другом компьютере, в другом приложении или после удаления окна, дескриптор не имеет смысла.
Итак, вы можете привести его к типу, который можно сериализовать, но дочтобы убедиться, что это все еще имеет смысл, когда вы десериализуете его.