Forse ho scoperto il problema.
Tramite il file xsd della P.A. ho generato la classe c# che fornisco al serializzatore xml.
Per quanto riguarda l'allegato, il formato della proprietà della classe è la seguente
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "base64Binary")]
public byte[] Attachment
{
get
{
return this.attachmentField;
}
set
{
this.attachmentField = value;
}
}
Ho fatto questa prova:
Ho convertito il testo
prova in un base64string quindi in un array di byte e questi sono i valori contenuti nell'array:
99,72,74,118,100,109,69,61
e come testo ho
cHJvdmE=
Passando questo array di byte all'attachment il serializzatore c# mi ritorna una stringa differente
<Allegati>
<NomeAttachment>Prova.txt</NomeAttachment>
<FormatoAttachment>txt</FormatoAttachment>
<Attachment>Y0hKdmRtRT0=</Attachment>
</Allegati>
Provando a sostituire manualmente nel file xml il testo dell'attachment con quello generato da codice c# il programma assoinvoice ritorna un allegato contenente nuovamente la scritta prova.
Il mio errore era quello di convertire la stringa contentente l'allegato in base64, mentre è gia il serializzatore in grado di farlo visto che è indicato nella proprietà del metodo c#
DataType = "base64Binary"
PS
Appena ho terminato, e il formato è corretto, dario46 ti invio il file xml da decodificare.
Grazie a tutti !!!!