C# Aspose PDF如何查找许可证对象
这个问题是一般性的,与Aspose产品无关,但它将帮助我更好地解释这个问题 Aspose有两个独立的类:C# Aspose PDF如何查找许可证对象,c#,aspose,C#,Aspose,这个问题是一般性的,与Aspose产品无关,但它将帮助我更好地解释这个问题 Aspose有两个独立的类: namespace Aspose.Cells { public class License { public License(); public void SetLicense(string licenseName); public void SetLicense(Stream stream); } } 及 根据as
namespace Aspose.Cells
{
public class License
{
public License();
public void SetLicense(string licenseName);
public void SetLicense(Stream stream);
}
}
及
根据aspose的文档,我需要在每个应用程序中使用以下行设置一个许可证密钥:
然后,我可以使用下面的工作簿类,而无需再次设置许可证
Workbook workbook = new Workbook(stream, new LoadOptions(loadFormat));
Console.WriteLine(workbook.IsLicensed);
一切都很完美,但我想了解工作簿对象访问许可证对象时,谁没有将许可证对象作为工作簿的引用传递?诀窍是什么?看起来工作簿对象可以直接访问许可证对象 许可证是一个库级属性,库的所有成员都可以访问它进行验证。当库在应用程序中加载一次并初始化许可证时,则无需再次初始化许可证。无论是使用多线程还是实现任何其他体系结构,一次许可证初始化就足够了,库的所有成员(如工作簿)和其他人都可以访问它 有关使用Aspose.Cells进行许可的更多详细信息,请访问以下链接
注意:我在Aspose担任支持开发者/传播者。你知道静态是什么意思吗?@Omtechguy-根据定义,静态对象没有引用。它们是全局的。@Omtechguy-或者类似的东西,可能是锁定了一些物理内存,或者做了其他事情来创建全局数据。可能是第三个类,但您可以在非静态类上拥有静态属性。谁知道呢。这个问题在这里并不是真正的主题,因为它涉及到另一个库的内部实现。但这不是一个答案,它只是一种可能性。这就是为什么这个问题是离题的。什么是库级属性?我在这里看到两个不同的类。。。你能分享这样两个类之间链接的例子吗?多亏了@DavidG和Erik Funkenbusch,我明白了库级属性是一个静态属性,现在答案很清楚了。谢谢大家!!
Aspose.Cells.License licence = new License();
licence .SetLicense("License file.txt");
Workbook workbook = new Workbook(stream, new LoadOptions(loadFormat));
Console.WriteLine(workbook.IsLicensed);