We help IT Professionals succeed at work.

Linking problem?

Tom Knowlton
Tom Knowlton asked
on
Medium Priority
217 Views
Last Modified: 2010-04-15
I have this solution with lots of existing projects I have brought in.

I have been able to access the properties and methods of the other Assemblies just fine.

But even though I have added assembly called "NEOMail" and it does have a public method exposed.....it fails to show up when I try to declare a variable of that type:

http://www.knowltonfamily.com/linking_prob.gif
Comment
Watch Question

Commented:
knowlton,
two things:
1)Does the class only have static methods?  If so then you can't declare an instance, you can just use it...

NeoMail.SendMessage("");

2) Have you set your using NeoMail at the top of the class declaration?
Tom KnowltonWeb developer

Author

Commented:
Here is the code for NEOMail:

Other assemblies have similar code and are linking in just fine!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

using System;
using System.Web.Mail;

namespace BuyerFund
{
      namespace NEOMail
      {
            /// <summary>
            /// Summary description for Class1.
            /// </summary>
            public class NEOMail
            {
            private string NEOEmail_To="";
                  private string NEOEmail_From="";
            private string NEOEmail_CarbonCopy="";
                  private string NEOEmail_Subject="";
                  private string NEOEmail_Body="";
            private string NEOEmail_AttachmentOne="";
                  private string NEOEmail_AttachmentTwo="";
                  private string NEOEmail_AttachmentThree="";
            private string NEOEmail_AttachmentFour="";
                  private string NEOEmail_PriorityIfFax = "";            


//if needed                  private ArrayList arLines = new ArrayList();
                  public BuyersFund.GatherMessages.GatherMessages gmMessage = new BuyersFund.GatherMessages.GatherMessages();
                  public BuyersFund.FormattingLib.FormattingLib formatLIB = new BuyersFund.FormattingLib.FormattingLib();
                  public BuyersFund.GeneralFunctions.GeneralFunctions genFuncs = new BuyersFund.GeneralFunctions.GeneralFunctions();

                  public NEOMail()
                  {
                        //
                        // TODO: Add constructor logic here
                        //
                  }

                  #region  Setters and Getters
                  
                  public string NMailTo
                  {
                        set
                        {
                              NEOEmail_To = value;
                        }

                        get
                        {
                              return NEOEmail_To;
                        }
                  }

                  public string NMailFrom
                  {
                        set
                        {
                              NEOEmail_From = value;
                        }

                        get
                        {
                              return NEOEmail_From;
                        }
                  }

                  public string NMailCarbonCopy
                  {
                        set
                        {
                              NEOEmail_CarbonCopy = value;
                        }

                        get
                        {
                              return NEOEmail_CarbonCopy;
                        }
                  }

                  public string NMailSubject
                  {
                        set
                        {
                              NEOEmail_Subject = value;
                        }

                        get
                        {
                              return NEOEmail_Subject;
                        }
                  }

                  public string NMailBody
                  {
                        set
                        {
                              NEOEmail_Body = value;
                        }

                        get
                        {
                              return NEOEmail_Body;
                        }
                  }

                  public string NMailAttachmentOne
                  {
                        set
                        {
                              NEOEmail_AttachmentOne = value;
                        }

                        get
                        {
                              return NEOEmail_AttachmentOne;
                        }
                  }

                  public string NMailAttachmentTwo
                  {
                        set
                        {
                              NEOEmail_AttachmentTwo = value;
                        }

                        get
                        {
                              return NEOEmail_AttachmentTwo;
                        }
                  }

                  public string NMailAttachmentThree
                  {
                        set
                        {
                              NEOEmail_AttachmentThree = value;
                        }

                        get
                        {
                              return NEOEmail_AttachmentThree;
                        }
                  }

                  public string NMailAttachmentFour
                  {
                        set
                        {
                              NEOEmail_AttachmentFour = value;
                        }

                        get
                        {
                              return NEOEmail_AttachmentFour;
                        }
                  }

                  public string NMailAttachmentPriorityIfFax
                  {
                        set
                        {
                              NEOEmail_PriorityIfFax = value;
                        }

                        get
                        {
                              return NEOEmail_PriorityIfFax;
                        }
                  }
#endregion


                  //returns 0 if okay
                  //returns 1 if error
                  public int SendFax()
                  {
                        try
                        {
                              MailMessage MyMail = new MailMessage();
                              MyMail.From = "Administrator@buyersfund.com";
                              //MyMail.To = FAXMAKER_EMAIL + this.strFaxNumber + FAXMAKER_DOMAIN;
                              MyMail.To = this.NEOEmail_To;
                              MyMail.Cc = this.NEOEmail_CarbonCopy;
                              MyMail.Subject = "TEST .NET built-in mail";
                              MyMail.Body = "::p=" + this.NEOEmail_PriorityIfFax;
                              //MailAttachment myAttachment = new MailAttachment(strFaxDocPath);
                        
                              //For testing...will generate exception
                              //MailAttachment myAttachment = new MailAttachment("sadfs");
                              //MyMail.Attachments.Add(myAttachment);
                              SmtpMail.Send(MyMail);                    
                              return 0;                              
                        }
                        catch(Exception e)
                        {
                              gmMessage.AddMessage("IT","There was a problem faxing.  Details:  " + e.StackTrace);
                              return 1;                              
                        }                  
                  }

            }
      }
}
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Tom KnowltonWeb developer

Author

Commented:
NEOMail.    does not bring up code completion for the public method SendFax(  ) or for any of the Setters / Getters I have written.
Tom KnowltonWeb developer

Author

Commented:
Ohhhhh......you are so right......geez I hate that!!!!!!!!!!!!

Was supposed to be BuyersFund not BuyerFund.....


Thanks,

Tom

Commented:
No problem, happens to me too.
Tom KnowltonWeb developer

Author

Commented:
:)

Confirmed....it works now.  


Tom

Commented:
Excellent!

Dean
Tom KnowltonWeb developer

Author

Commented:
I want to ask you something else.....

I've noticed that you can add lots of existing projects to one solution.

Is it pretty common practice to add all company related projects under ONE solution.....for easy access, etc.?

Commented:
I think it depends.  If you add them all to one solution you are constantly rebuilding them which can start to effect versioning, etc., not to mention compile time.  When you're in dev mode and things are all fluid, it is probably useful to keep them all in one solution.  However, once you have started to lock projects down it is probably best to move them out of the solution and just reference the assembly.  Especially true for assemblies that are shared by multiple applications.
Tom KnowltonWeb developer

Author

Commented:
Okay....

I have noticed that I am naturally grouping set of Assemblies together for different projects I work on....and had the thought, "Hey why don't I just lump ALL OF THEM together into one big solution...???"

I think you have laid out the pros and cons of this quite nicely.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.