Класс ThisAddIn, созданный с новым Outlook проект VSTO C#, имеет a Application
свойство, которое можно использовать, чтобы среди прочего получить доступ к Папкам Outlook и объектам. Проблема состоит в том, что можно легко использовать его, когда Вы в классе ThisAddIn, но нет никакого легкого доступа к нему от других классов в проекте. Это вызвано тем, что это - свойство экземпляра.
Я хочу найти лучший способ наличия доступа к той же функциональности, которую это свойство обеспечивает в моих других классах, таким образом, я предлагаю два возможных решения, но я не знаю, какой (если таковые имеются) их хорош.
Позволяет предполагают, что я хочу получить папку ящика входящих сообщений по умолчанию. В классе ThisAddIn я просто сделал бы что-то вроде этого:
this.Application.Session.GetDefaultFolder(Outlook.olFolderInbox);
Теперь, как сделать ту же внешнюю сторону этот класс?
Во-первых, я мог добавить статическое свойство к ThisAddIn
класс и набор это к значению я хочу представить в других классах.
public partial class ThisAddIn
{
public Outlook.Application OutlookApp;
void ThisAddIn_Startup(object sender, EventArgs e)
{
// init static variable value here
OutlookApp = this.Application
// initialize the rest of addin here
}
void InternalStartup()
{
this.Startup += this.ThisAddIn_Startup;
}
}
Этот путь в любом из моих других классов я мог сделать что-то вроде этого:
ThisAddIn.OutlookApp.Session.GetDefaultFolder(Outlook.olFolderInbox);
Вторая вещь, которую я мог сделать, к init Объекту приложения в моем другом классе, прежде чем я буду использовать его. Но я не уверен, если создание нового объекта того типа не создает новый экземпляр Outlook.
class MyOtherClass
{
public void MyMethod()
{
var app = new Outlook.Application();
var folder = app.Session.GetDefaultFolder(Outlook.olFolderInbox);
}
}
Делает у любого есть любые предложения, какой подход лучше, того, если у Вас есть различные решения для этой проблемы, я был бы apprieciate это также.
Поскольку у вас может быть единственный экземпляр ThisAddIn, у вас может быть статическая переменная для доступа к форме приложения извне. .. К вашему сведению, когда вы добавляете проект Outlook-AddIn VSTO, экземпляр ThisAddIn будет доступен как статический член в статическом классе Globals