VSTO Office 加载项在打开 MessageBox 时出现异常

VSTO Office Add In gives exception when opening MessageBox

我有一个用 .Net C# 实现的 MS Office Word 插件。 在我尝试打开消息框的特定情况下

MessageBox.Show()

我遇到异常

System.Runtime.Serialization.SerializationException 

这显然与 MessageBox 无关。

流程就是这样

 1- Perform call to MessageBox.Show() -> All goes well
 2- Perform some WCF calls -> All goes well
 3- Perform a new call to MessageBox.Show() -> I get the exception

例外是

System.Runtime.Serialization.SerializationException: Type is not resolved for member XXX

其中 XXX 是

的实现
System.Security.Principal.IPrincipal

有没有人知道我可能做错了什么。 如果我跳过第 2 步,那么第 3 步也可以正常工作。 如果我跳过第 1 步(第一个 MessageBox 显示)并且只执行第 2 步和第 3 步,那么它也可以正常工作。

我以前遇到过同样的问题。

您正在使用自定义身份吗?如果是这样,那么请确保您的身份是 [Serializable] 并实现 ISerializable 接口。这将解决您的问题。

Reference (这是关于服务器应用程序,但如果您使用 Office 并调用 WCF,则同样适用)。

虽然我不明白为什么需要这样。