当前位置: 首页 > 编程语言 > C#

如何在ThisAddIn类之外访问VSTOOutlook加载项中的Application属性?

时间:2023-04-10 23:43:55 C#

如何访问ThisAddIn类之外的VSTOOutlook加载项中的应用程序属性?使用新的OutlookVSTOC#项目创建的ThisAddIn类具有可用于访问Outlook文件夹和项目的应用程序属性。问题是当你在ThisAddIn类中时你可以很容易地使用它,但是你不能很容易地从项目中的其他类访问它。这是因为它是一个实例属性。我想找到访问此属性在我的其他类中提供的相同功能的最佳方式,因此我提出了两种可能的解决方案,但我不知道哪种(如果有的话)是好的。假设我想获取默认的收件箱文件夹。在ThisAddIn类中,我会做这样的事情:this.Application.Session.GetDefaultFolder(Outlook.olFolderInbox);现在我如何在这门课之外做同样的事情?1.静态属性首先,我可以向ThisAddIn类添加一个静态属性,并将其设置为我想在其他类中公开的值。publicpartialclassThisAddIn{publicOutlook.ApplicationOutlookApp;voidThisAddIn_Startup(objectsender,EventArgse){//在这里初始化静态变量值OutlookApp=this.Application//在这里初始化插件的其余部分}voidInternalStartup(){this.Startup+=this.This.ThisAddIn_Startup;所以在我的任何其他课程中我都可以这样做:ThisAddIn.OutlookApp.Session.GetDefaultFolder(Outlook.olFolderInbox);2.创建新的Application对象我可以做的第二件事是在我使用它之前在我的其他类中初始化Application对象。但我不确定创建该类型的新对象是否不会创建新的Outlook实例。类MyOtherClass{publicvoidMyMethod(){varapp=newOutlook.Application();var文件夹=app.Session.GetDefaultFolder(Outlook.olFolderInbox);如果您对这个问题有不同的解决方案,有没有人有任何建议哪种方法更好,我也会对它们进行投票。由于您可以拥有ThisAddIn的单个实例,因此您可以使用静态变量访问外部应用程序表单...仅供参考,当您添加Outlook-AddInVSTO项目时,ThisAddIn的实例将作为静态成员在staticclassGlobals上面是C#学习教程:HowtoaccesstheApplicationpropertyintheVSTOOutlookadd-inoutsideThisAddInclass?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: