簡體   English   中英

C#和MongoDB。 無法完全保存Exception對象

[英]C# and MongoDB. Can't save completely Exception objects

我有一個帶有一些字符串屬性和一個“異常”屬性的類。 保存對象時,MongoDB中的所有字符串屬性都是正常的,但異常部分屬性是部分的。 只有屬性“_t”和“HResult”存在。

“Message”,“InnerException”,“StackTrace”等等發生了什么?

我可以將這樣的對象保存到MongoDB嗎?

我班的一塊:

public class TraceLogEntity: MongoRepository.Entity {
public string ClassName {
    get;
    set;
}
public Exception Exception {
    get;
    set;
}
public string MethodName {
    get;
    set;
}
}

MongoDB上的一塊對象:

{
"_id": ObjectId("55560138c57b9957202cae5a"),
"CreatedAt": ISODate("2015-05-05T03:00:00Z"),
"UserLogin": "UserLogin 3",
"ClassName": "ClassName 3",
"Exception": {
    "_t": "LogException",
    "HelpLink": null,
    "Source": null,
    "HResult": -2146233088
},
"MethodName": "MethodName 3"
}

我正在使用MongoRepository: https//github.com/RobThree/MongoRepository

提前致謝!!

.NET Exception類未標記為Serializable。 這可能會影響您在MongoDB中獲取Message,InnerException等的能力。 MongoRepository使用的JSON庫無法從類中獲取這些屬性。

我要做的是將這些字段添加到TraceLogEntity類而不是使用Exception對象。 所以它看起來像:

public class TraceLogEntity : MongoRepository.Entity
{
    public string ClassName { get; set; }
    public string Message { get; set; }
    public string StackTrace { get; set; }
    public TraceLogEntity InnerException { get; set; }
    public string MethodName { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM