Allora... ho ricreato il progetto da nuovo con solo la parte di codice problematica.
Non ho risolto nulla, ma se i metadati non si devono toccare, allora forse sbaglio a creare le nuove istanze... perciò ti chiedo cortesemente, date le classi:
codice:
namespace asd
{
[DataContract(Name = "InsertAdempList", Namespace = "http://schemas.datacontract.org/2004/07/WcfDemo")]
[DebuggerStepThrough]
[GeneratedCode("System.Runtime.Serialization", "4.0.0.0")]
public class InsertAdempList : IExtensibleDataObject, INotifyPropertyChanged
{
public ExtensionDataObject ExtensionData { get; set; }
[DataMember]
public InsertAdempFields[] Campi { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
}
namespace asd
{
[DataContract(Name = "InsertAdempFields", Namespace = "http://schemas.datacontract.org/2004/07/WcfDemo")]
[DebuggerStepThrough]
[GeneratedCode("System.Runtime.Serialization", "4.0.0.0")]
public class InsertAdempFields : IExtensibleDataObject, INotifyPropertyChanged
{
public ExtensionDataObject ExtensionData { get; set; }
[DataMember]
public string TestNomeCampo { get; set; }
[DataMember]
public string TestValoreCampo { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
}
Come si fanno ad aprire correttamente delle nuove istanze tale per cui nel codice del main:
codice:
public partial class WebService : System.Web.UI.Page
{
public asd.InsertAdempFields Fields = new asd.InsertAdempFields();
public asd.InsertAdempList Lista = new asd.InsertAdempList();
protected void Page_Load(object sender, EventArgs e)
{
Lista.Campi[0].TestNomeCampo = "S_CAMPO1";
}
}
La variabile "Lista.Campi[0].TestNomeCampo" riesce a compilarsi correttamente senza dare l'errore:
codice:
System.NullReferenceException: 'Riferimento a un oggetto non impostato su un'istanza di oggetto.'
asd.InsertAdempList.Campi.get ha restituito null.
?
Ps: se fai copia incolla di queste parti (anche nella stessa pagina) dovresti avere il mio stesso errore