簡體   English   中英

如何在不引用 EF 的情況下識別 EF POCO 代理?

[英]How can I recognise an EF POCO proxy without referencing EF?

我需要發現 EF POCO 代理; MSDN給出了一些基於ObjectContext.GetObjectType(type.GetType())的提示

但是,我真的很想在沒有 EF 參考的情況下執行此操作。 例如,使用 NHibernate,我可以檢查 object 是否使用名稱(作為字符串) "NHibernate.Proxy.INHibernateProxy"實現了標記接口。

EF POCO 代理中有類似的東西嗎? 例如,我能否依賴它們位於命名空間System.Data.Entity.DynamicProxies. ,或者是脆的?

偷看反射器內部,它只是根據內部跟蹤的組件檢查組件,這對我來說是個問題。

在幕后檢查,作為一個實現細節,在當前的 EF 中,該類型確實將始終存在於“System.Data.Entity.DynamicProxies”中。 這可能不是一個可靠的測試,但應該很少更改。 不過,我將嘗試與 Microsoft 澄清這一點。

我知道一個名為這種模式的 POCO 代理類型UserDefinedName_123AF...

那么這種方法怎么樣?

const string pattern = @"_[\dA-F]{64}\b";
Regex regex = new Regex(pattern);
bool result = regex.IsMatch(tragetObject.GetType().Name);

暫無
暫無

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

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