这个问题是通用的,与Aspose产品无关,但这将帮助我更好地解释这个问题。
Aspose有两个单独的类:
namespace Aspose.Cells
{
public class License
{
public License();
public void SetLicense(string licenseName);
public void SetLicense(Stream stream);
}
}
和
public class Workbook : IDisposable
{
public Workbook();
public Workbook(FileFormatType fileFormatType);
public Workbook(string file);
public Workbook(Stream stream);
public Workbook(string file, LoadOptions loadOptions);
public Workbook(Stream stream, LoadOptions loadOptions);
public WorksheetCollection Worksheets { get; }
public bool IsLicensed { get; }
}
根据aspose的文档,我需要使用以下行每个应用程序一次设置的许可证密钥:
Aspose.Cells.License licence = new License();
licence .SetLicense("License file.txt");
然后,我可以使用以下工作簿类,而无需再次设置许可证。
Workbook workbook = new Workbook(stream, new LoadOptions(loadFormat));
Console.WriteLine(workbook.IsLicensed);
一切正常,但是我想了解谁在不将许可证对象作为对工作簿的引用的情况下,谁访问了工作簿对象?诀窍是什么?看来工作簿对象可以直接访问许可证对象...
答案 0 :(得分:1)
许可证是库级别的属性,该库的所有成员均可访问以进行验证。当在应用程序中一次加载了库并初始化了许可证后,便无需再次初始化许可证。要么使用多线程,要么实现任何其他体系结构,一次许可证初始化就足够了,并且库的所有成员(如Workbook等)都可以访问它。
您可以访问以下链接,以获得有关使用Aspose.Cells进行许可的更多详细信息。
https://docs.aspose.com/display/cellsnet/Licensing
注意:我是Aspose的支持开发人员/传播者。