0

DbConnectionStringBuilderオブジェクトをシリアル化するにはどうすればよいですか。サーバーからクライアントにオブジェクトを送信する必要があります。

このアプローチを使用して IDcitionary をシリアル化しようとしました。しかし、クライアント側では、これらのキーをオブジェクトに追加すると、ファンキーな接続文字列が割り当てられます。もしそうなら

_connectionStringBuilder.ConnectionString = string.Empty;

これにより、すべてのキーが削除されます。

サーバーからクライアントに DbProviderFactory オブジェクトを返すことは可能ですか?

4

1 に答える 1

1

StringDictionaryがユーザー設定として保存されていません」は、シリアル化の方法を示していますDbConnectionString

public static string Serialize(StringDictionary data)
{
    if(data == null) return null; // GIGO
    DbConnectionStringBuilder db = new DbConnectionStringBuilder();
    foreach (string key in data.Keys)
    {
        db[key] = data[key];
    }
    return db.ConnectionString;
}
public static StringDictionary Deserialize(string data)
{
    if (data == null) return null; // GIGO
    DbConnectionStringBuilder db = new DbConnectionStringBuilder();
    StringDictionary lookup = new StringDictionary();
    db.ConnectionString = data;
    foreach (string key in db.Keys)
    {
        lookup[key] = Convert.ToString(db[key]);
    }
    return lookup;
}

StringDictionaryシリアル化に使用されます。

于 2012-08-24T16:17:22.090 に答える