[英]C# xmlserialization storing one class in two different way - possible?
[英]Is it possible to wrap two similar class functions into one class in C#?
我正在使用C#中的SqlConnection和AdomdConnection對象。
SqlConnection由以下構造:DbConnection,ICloneable。
AdomdConnection構造自:Component,IDbConnection,IDisposable,ICloneable。
我希望我可以使用通用接口或類類型來傳遞,但這似乎不是一個選項,因為它們不共享一個共同的類型,我可以告訴。
它們都有類似的方法我需要調用但是因為我要編寫一些關於調用它們的邏輯,或者我想將它們包裝到它們自己的類中然后只調用該類並讓它擔心底層類型。
最初,我以為我可以使用這樣的東西:
public class ConnectionWrapper {
protected object _Conn;
public ConnectionWrapper(object Conn) {
_Conn = Conn;
}
public void Open() {
if (_Conn is SqlConnection) {
((SqlConnection) _Conn).Open();
} else if (_Conn is AdomdConnection) {
((AdomdConnection) _Conn).Open();
}
}
}
但我不禁懷疑沒有更好的辦法。
我遇到了TypeMap類(參見問題298976),這是一種更易讀的方法,但我無法弄清楚如何使用返回值,但仍然想知道是否有更好的方法來做到這一點。
使用IDbConnection
- 這兩種類型都很常見。
SqlConnection
繼承自DbConnection
,后者又實現了IDbConnection
接口。 此接口也由AdomdConnection
實現。
因此,您可以使用IDbConnection
接口來表示這兩種類型
SqlConnection由以下構造:DbConnection,ICloneable。
是的,它是,但DBConnection
本身擴展並實現了Component, IDbConnection, IDisposable
所以你可以像IDbConnection
一樣處理這兩個對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.