【发布时间】:2018-12-20 09:23:20
【问题描述】:
这个问题很笼统,与 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);
一切正常,但我想了解谁工作簿对象访问许可证对象而不传递许可证对象作为对工作簿的引用?诀窍是什么?看来workbook对象可以直接访问license对象了……
【问题讨论】:
-
你知道
static是什么意思吗? -
@Omtechguy - 根据定义,静态对象没有引用。它们是全球性的。
-
@Omtechguy - 或者类似的东西(也许它正在锁定一些物理内存,或者做其他事情来创建全局数据)。
-
可能是第三类,但您可以在非静态类上拥有静态属性。谁知道。这个问题在这里并不是真正的主题,因为它正在处理另一个库的内部实现。
-
这不是一个答案,它只是一种可能性。这就是为什么这个问题跑题了。