2017-04-21 3 views
0

Hintergrund Info:ein originelles Objekt neues Objekt hinzufügen, die eine Liste Eigenschaft des ursprünglichen Objekts enthält

derzeit an einem Programm zu arbeiten, wo ich eine benutzerdefinierte Datenmodelle haben, die verwendet werden, um Informationen zu speichern. Datenmodell1 muss einem neuen Objektdatenmodell hinzugefügt werden, das eine Listeneigenschaft von Datenmodell1 enthält.

Problem:

hat derzeit eine Funktion, die in eine Act_Email Dateninformationen von einem E-Mail und Orten Daten analysiert werden. Sobald die Funktion abgeschlossen ist, wird ein Objekt von Act_Email an die Funktion zurückgegeben, die es aufruft. Ich möchte jedoch eine Liste von Objekten auf Basis meiner Act_Email erstellen. Derzeit funktioniert der folgende Code gut, bis ich mein Act_Email-Objekt meinem anderen Objekt hinzufügen kann, das eine Liste meines Act_Email-Objekts enthalten soll.

Act_Email

namespace ActivityCrawler.Models 
{ 
    class Act_Email 
    { 
     public string ActivityID { get; set; } 
     public string ActivityBody { get; set; } 
     public string ActivityThreadIndex { get; set; } 
     public string ActivityMessageID { get; set; } 
     public string ActivitySubject { get; set; } 
     public string ActivityWebLink { get; set; } 
     public string BulkEmail { get; set; } 
     public string CampaignID { get; set; } 
    } 
} 

namespace ActivityCrawler.Models 
{ 
    class ActivityDBCollection 
    { 
     public List<Act_Email> MinedEmailData { get; set; } 
     public List<Act_DHG_Staff> MinedDHGStaffData { get; set; } 
     public List<Act_Header> MinedHeader { get; set; } 
     public List<Act_Attachments> MinedAttachmentData { get; set; } 
     public List<Act_Notes_Tasks> MinedNotes_TaskData { get; set; } 
     public List<Act_Crm_Leads_Contacts> MinedContact_Leads_Data { get; set; } 
    } 
} 

public static Act_Email Extract_Act_Email(UnparsedData recordList) 
{ 
    Act_Email parsedData = new Act_Email(); 
    try 
    { 
     if (recordList.ActivityType != "Notes") 
     { 
      parsedData.ActivityWebLink = recordList.ActivityWebLink; 
      parsedData.ActivityBody = recordList.ActivityBody; 
      parsedData.ActivityID = recordList.ActivityHeaderID; 
      parsedData.ActivityMessageID = recordList.ActivityUniqueID; 
      parsedData.ActivitySubject = recordList.ActivitySubject; 
      parsedData.ActivityThreadIndex = recordList.ActivityParentId; 
     } 
    } 
    catch (Exception ex) 
    { 
     throw; 
    } 


    return parsedData; 
} 

static void Main(string[] args) 
{ 
ActivityDBCollection DBData = new ActivityDBCollection(); 
Act_Email minedEmailData = Helpers.DataParsers.Extract_Act_Email(emailDataModel); 
    DBData.MinedEmailData.Add(minedEmailData); 
} 
+0

Sie sind ein Act_Email Objekt „minedEmailData“ dann zu schaffen versuchen minedContact_Leads_Data hinzuzufügen, die nicht in dem Code nicht existiert, oder bin ich etwas vermissen? – Simon

+0

@simon Entschuldigung Ich reparierte den Code, aber dass es die Idee ist, dass ich ein Objekt bekomme, das ich einem anderen Objekt hinzufügen möchte, das eine Liste meines Objekts – EasyE

+0

aufnehmen wird Versuchen Sie, was dpimente vorgeschlagen hat. Wenn das nicht funktioniert, versuchen Sie, die Listen in ActivityDBCollection virtuell, z. öffentliche virtuelle Liste MinedEmailData {get; einstellen; } – Simon

Antwort

1

Sie haben ein Problem ‚mein Act_Email Objekt zu meinem anderen Objekt hinzufügen, die eine Liste meiner Act_Email Objekt beherbergen sollte.‘

Es scheint, Ihr anderes Objekt (DBData.MinedContact_Leads_Data, wo DBData ist 'ActivityDBCollection') eine Liste der Act_email Klasse enthält.

Auch in Ihrer Funktion 'Extract_Act_Email' erstellen Sie immer ein Act_Email-Objekt, so dass eines zurückgegeben werden sollte.

Ist dies ein Null-Referenzfehler? Ich würde Ihre Klasseninitialisierer für ActivityDBCollection überprüfen oder manuell das Feld ‚MinedEmailData‘ initialisieren wie so

static void Main(string[] args) 
{ 

    ActivityDBCollection DBData = new ActivityDBCollection(); 
    DBData.MinedEmailData = new List<Act_Email>(); 
    Act_Email minedEmailData = Helpers.DataParsers.Extract_Act_Email(emailDataModel); 
    DBData.MinedEmailData.Add(minedEmailData); 
} 
Verwandte Themen