我已经构建了一个方面,它使用我自己的一个库中的一个类来完成它的工作。该类需要被序列化才能有用,但是当让 PostSharp 做它的事情时,我得到了这个错误:
PostSharp 3.0 [3.0.35.0, 64 bit, CLR 4.5, Release] - Copyright (c) SharpCrafters
s.r.o., 2004-2012.
POSTSHARP : error LA0001: Cannot serialize the aspects: Cannot find a serializer
for type 'NextGen.Framework.Managers.LogMgr.NxLogMgr'..
POSTSHARP : message PS0122: Details of the previous error or warning:\nPostSharp
.Serialization.PortableSerializationException: Cannot find a serializer for type
'NextGen.Framework.Managers.LogMgr.NxLogMgr'.
POSTSHARP : message PS0122: at PostSharp.Serialization.SerializationWriter.Ge
tObjectInfo(Object obj)
POSTSHARP : message PS0122: at PostSharp.Serialization.SerializationWriter.Wr
iteObjectReference(Object value, Boolean writeInitializationDataInline)
POSTSHARP : message PS0122: at PostSharp.Serialization.SerializationWriter.Wr
iteValue(Object value, SerializationIntrinsicType intrinsicType, Boolean writeIn
itializationDataInline)
POSTSHARP : message PS0122: at PostSharp.Serialization.SerializationWriter.Wr
iteArguments(Arguments arguments, Boolean writeInitializationArgumentsInline)
POSTSHARP : message PS0122: at PostSharp.Serialization.SerializationWriter.Se
rialize(Object obj)
POSTSHARP : message PS0122: at ^RIeE65/59SwT.^AiEkYplb()
POSTSHARP : error PS0060: The processing of module "NextGen.BusinessObject.Posti
ngQueueMgr_3Base.dll-PostSharp.dll" was not successful.
有谁知道我可能会错过什么?
ps 该类的定义如下所示:
Namespace NextGen.Framework.Managers.LogMgr
<Serializable>
Public Class NxLogMgr
- 更新 -
在谷歌搜索中,我确实找到了这个(来自 PostSharp 开发人员):
当您尝试在方面内序列化类型时会发生这种情况,并且 CLR 无法将类型作为运行时类型加载。PostSharp 然后提供反射包装,但这些不能被序列化
(见: http: //support.sharpcrafters.com/discussions/problems/484-additional-exception-detail)
所以我的方面使用了这个 LogMgr 类,它被声明为可序列化,但不能被 CLR 加载,为什么?