OK Это то, что у меня есть. У меня есть моя основная форма frmMain.cs
, и у меня есть class.cs
. Я делал в RssFeed для моей электронной почты, и я получаю сообщение об ошибке:frmMain недоступен из-за его уровня защиты
inaccessible due to its protective level.
На моем class.cs
У меня есть следующий код:
public class RSSFeed
{
public void CheckForEmails()
{
string GmailAtomUrl = "https://mail.google.com/mail/feed/atom";
XmlUrlResolver xmlResolver = new XmlUrlResolver();
xmlResolver.Credentials = new NetworkCredential(Settings.Default.GmailUser, Settings.Default.GmailPassword);
XmlTextReader xmlReader = new XmlTextReader(GmailAtomUrl);
xmlReader.XmlResolver = xmlResolver;
try
{
XNamespace ns = XNamespace.Get("http://purl.org/atom/ns#");
XDocument xmlFeed = XDocument.Load(xmlReader);
var emailItems = from item in xmlFeed.Descendants(ns + "entry")
select new
{
Author = item.Element(ns + "author").Element(ns + "name").Value,
Title = item.Element(ns + "title").Value,
Link = item.Element(ns + "link").Attribute("href").Value,
Summary = item.Element(ns + "summary").Value
};
frmMain.MsgList.Clear();
frmMain.MsgLink.Clear();
foreach (var item in emailItems)
{
if (item.Title == String.Empty)
{
frmMain.MsgList.Add("Message from " + item.Author + ", There is no subject and the summary reads, " + item.Summary);
frmMain.MsgLink.Add(item.Link);
}
else
{
frmMain.MsgList.Add("Message from " + item.Author + ", The subject is " + item.Title + " and the summary reads, " + item.Summary);
frmMain.MsgLink.Add(item.Link);
}
}
if (emailItems.Count() > 0)
{
if (emailItems.Count() == 1)
{
frmMain.lblEmail.Text = ("You have one new email, would you like me to read it to you");
}
else
{
frmMain.lblEmail.Text("You have " + emailItems.Count() + "new emails");
}
}
else if (frmMain.QEvent == "CheckForNewEmails" && emailItems.Count() == 0)
{
frmMain.lblEmail.Text("You have no new emails"); frmMain.QEvent = String.Empty;
}
}
catch
{
frmMain.lblEmail.Text("You have submitted invalid log in information");
}
}
}
А потом у меня на моей главной форме клещ таймера событий:
public void tmrEmail_Tick(object sender, EventArgs e)
{
lblEmail.Text = ("New Emails " + RSSFeed.CheckForEmails);
}
То, что я не понимаю, - это когда у меня есть ярлык в RSSFeed или на моей основной таймере. Я получаю ошибку. Я изменил все на public
, и он все еще бросает ошибку.
Я что-то упустил или у меня не было всего, что у меня было бы?
Также у меня будет другая форма, предназначенная только для электронной почты. Было бы лучше покончить с RSSFeed.cs и просто закодировать winform? Единственное, что он делает, это создать ярлык, когда у меня появятся новые письма.
Любые мысли?
Также он отлично работает в одной форме. Его просто ярлык не работает. – ivansystems
Вы имеете в виду 'frmMain' как класс - когда вы должны использовать * объект * этого класса. – Rob
это то, что я есть на общедоступном класса frmMain частичной frmMain – ivansystems