OVH Cloud OVH Cloud

Serialisation non effective

4 réponses
Avatar
Delf
Bonjour.

Au niveau d'un WebService, j'ai la structure suivante :

[Serializable]
public struct SAVDocByGetDir
{
public string Type;
public string GUID;
//...
public bool Visual;
}

Cette structure ne contient que des types primitifs : string & bool.

Côté ASP.NET, impossible de stocker dans le ViewState un objet de ce type :

Le type 'WebSite.wsMediaRef.SAVDocByGetDir' doit être marqué comme
Serializable ou utiliser un TypeConverter autre que ReferenceConverter
dans le viewstate.

J'ai cherché, apparemment, le simple fait de mettre [Serializable] dans
mon cas devrait fonctionner... or ce n'est pas le cas.

Des indications ?
Merci

--
Delf

4 réponses

Avatar
Delf
Delf wrote:

> [...]

Dans le code-behind de ma page ASP.NET :

dlFolderList.DataSource = FolderList;
dlFileList.DataSource = FileList;

dlFolderList.DataBind();
dlFileList.DataBind();

#END PAGE_LOAD()

(FolderList et FileList sont des ArrayLists contenant des objets de type
SAVDocByGetDir)

Quand je visualise les datasources des DataList via le debugger, j'ai
bien le contenu des taleaux...

L'erreur apparait lors de la sortie de la méthode Page_Load(). Je me
suis dit que celà venait surement des balises

<%# ((WebSite.wsMediaRef.SAVDocByGetDir)Container.DataItem).Name %>

Je les ai toutes retirées pour voir, toujours cette même erreur...

--
Delf
Avatar
Delf
Delf wrote:

> [...]

ViewState["AllAVDocs"] (wsMediaRef.SAVDocByGetDir[])AllFiles.ToArray
(typeof(wsMediaRef.SAVDocByGetDir));

wsMediaRef.SAVDocByGetDir[] TMP (wsMediaRef.SAVDocByGetDir[])ViewState["AllAVDocs"];

TMP contient bien le tableau... j'y comprends plus rien

--
Delf
Avatar
Paul Bacelar
Je crois qu'une arrayList d'objets sérialisables n'est pas sérialisable mais
un tableau d'object sérialisables est sérialisable.

--
Paul Bacelar

"Delf" wrote in message
news:425f79ff$0$8253$
Delf wrote:

> [...]

Dans le code-behind de ma page ASP.NET :

dlFolderList.DataSource = FolderList;
dlFileList.DataSource = FileList;

dlFolderList.DataBind();
dlFileList.DataBind();

#END PAGE_LOAD()

(FolderList et FileList sont des ArrayLists contenant des objets de type
SAVDocByGetDir)

Quand je visualise les datasources des DataList via le debugger, j'ai
bien le contenu des taleaux...

L'erreur apparait lors de la sortie de la méthode Page_Load(). Je me
suis dit que celà venait surement des balises

<%# ((WebSite.wsMediaRef.SAVDocByGetDir)Container.DataItem).Name %>

Je les ai toutes retirées pour voir, toujours cette même erreur...

--
Delf


Avatar
Paul Bacelar
Je crois qu'une arrayList d'objets sérialisables n'est pas sérialisable mais
un tableau d'object sérialisables est sérialisable.

--
Paul Bacelar

"Delf" wrote in message
news:425f7e6e$0$6820$
Delf wrote:

> [...]

ViewState["AllAVDocs"] > (wsMediaRef.SAVDocByGetDir[])AllFiles.ToArray
(typeof(wsMediaRef.SAVDocByGetDir));

wsMediaRef.SAVDocByGetDir[] TMP > (wsMediaRef.SAVDocByGetDir[])ViewState["AllAVDocs"];

TMP contient bien le tableau... j'y comprends plus rien

--
Delf