2012-09-06 8 views
0

Je prends le tableau bytes du contrôle de téléchargement de fichier et les enregistre dans un objet de classe mais je reçois une exception de stackoverflow infinite loop ou récursif comme sonmething.byte array getter setter en C# asp.net

mon code est:

public class UploadDetail 
{`enter code here` 
    //public bool IsReady { get; set; } 
    public string FileSize { get; set; } 
    //public int UploadedLength { get; set; } 
    public string FileName { get; set; } 
    public byte[] FileinBytes; 


    public byte[] FileBytes 
    { 
     get 
     { 
      return FileBytes; 
     } 

     set 
     {     
      FileBytes = value; 
     } 
    } 

ici est mon événement bouton gridview où je suis en train de la valeur des objets:

protected void gvUploadFiles_Clicked(object sender, GridViewCommandEventArgs e) 
{ 
    try 
    {  
     if (e.CommandName == "doingUpload") 
     { 

      int index = Convert.ToInt32(e.CommandArgument); 

      GridViewRow row = gvUploadFiles.Rows[index]; 

      if (gvUploadFiles.DataKeys[index]["FileName"] != null) 
      { 
       currentUpload.FileName = gvUploadFiles.DataKeys[index]["FileName"].ToString(); 
      } 

      if (gvUploadFiles.DataKeys[index]["FileSize"] != null) 
      { 
       currentUpload.FileSize = gvUploadFiles.DataKeys[index]["FileSize"].ToString(); 
      } 


      if (gvUploadFiles.DataKeys[index]["FileBytes"] == null) 
      { 
       currentUpload.FileBytes=(byte[])gvUploadFiles.DataKeys[index]["UploadDetail.FileBytes()"]; 
       //currentUpload.FileBytes(row.FindControl("fileBytes")); 
      } 

Répondre

1

Vous avez une récursion infinie dans votre getter/setter. Voulez-vous écrire à FileinBytes?

public byte[] FileBytes 
{ 
    get 
    { 
     return FileinBytes; 
    } 

    set 
    { 
     FileinBytes = value; 
    } 
} 

Une alternative pourrait être d'utiliser une propriété automatique mis en œuvre:

public byte[] FileBytes { get; set; } 
+0

est cela fonctionnera Peter –

+0

Thanx Peter, il a travaillé pour moi ..... :) Merci beaucoup j'ai été stucked il il y a quelques heures .... :) –