0
我有一個linq表達式,我希望以人類可讀形式在日誌中顯示它。任何人都知道任何可以做到的圖書館?我看到這個條目Creating a string from a lambda expression,但在我看來,它並沒有那麼有用。是否有第三方庫知道將linq表達式轉換爲可讀的字符串表示形式?
謝謝。
編輯
現在想起來,我的情況是可能不是代表性的,因爲我的LINQ表達式包含內部的類型名稱,這是由的ToString擴大到一些完全怪異,因爲類型是一個通用的。例如,表達e => e.TypeName == typeof(T).AssemblyQualifiedName
其中T是我的一般上下文被擴展爲:
"e => (e.TypeName == \"Shunra.Infra.DummyEntity.Contract.IDummyEntity`1[[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], Shunra.Infra.DummyEntity.Contract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=807fc02bc4ce69db\")"
看起來,要求被很好地格式化裝配合格的名稱是不公平可言......
如果你正在尋找一些你可以在現成的產品上使用的東西,那麼這個鏈接對你沒有任何幫助。因爲我不認爲你想要的東西已經存在,但是,你應該仔細看看這個鏈接。如果您知道如何遍歷表達式樹,您可以輕鬆構建一個字符串來描述您想要的內容。但是,如何使用.ToString()呈現表達式有什麼問題?你能將代碼發佈到你的LINQ表達式嗎? – 2010-10-10 15:27:29
我知道遍歷linq表達式。但這至少是一天的工作,如果我能拯救它 - 我的勝利。 – mark 2010-10-10 15:30:37
當然,我明白。不過,你可以發佈你的LINQ代碼,並且還可以提供你希望的什麼樣的「人類可讀」輸出樣本? – 2010-10-10 15:33:36