簡體   English   中英

C#和SQL Server 2008 CLR序列化問題

[英]C# and SQL Server 2008 CLR Serialization Problem

我試圖在C#中創建一個SqlUserDefinedAggregate以附加到我的SQL Server 2008實例。 我正在使用.NET 3.5。 基本上,我想計算我看到字符串值的次數。 由於使用它確實需要是一個聚合函數。 該函數的代碼在邏輯上是合理的,但是當我去部署時,我得到了這個:

部署錯誤SQL01268:.Net SqlClient數據提供程序:消息6222,級別16,狀態1,行1類型“GEMCLR.CountTypes”標記為本機序列化,但類型為“GEMCLR.CountTypes”的字段“m_types”對本機無效序列化。

m_typesDictionary<string, int> 我的代碼大綱如下所示:

[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedAggregate (Format.Native)]
public struct CountTypes
{
    private Dictionary<string, int> m_types;

    public void Init ()
    {
        m_types = new Dictionary<string, int> ();
    }

    public void Accumulate (SqlString value) { ... }

    public void Merge (CountTypes group) { ... }

    public SqlString Terminate () { ... }
}

通常一個字典不是開箱即用的序列化,這是你的問題,有很多關於如何解決這個問題的文章,例如Adam Semel的如何在C#中序列化字典或Hashtable

暫無
暫無

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

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