我有以下代码从Java和“充气城堡”库编写的“ UBER”密钥存储中提取许可证密钥。
KeyStore store = KeyStore.getInstance(BaseLicenseFactory.UBER, provider);
store.load(inputStream, password);
Enumeration<?> aliases = store.aliases();
Map<String, BaseLicense> licenses = new LinkedHashMap<>();
while (aliases.hasMoreElements()){
...
}
...
但是我现在想做的是提取相同的许可证,但是现在使用C#。我正在尝试利用“充气城堡”,但我还没有找到一种方法。有没有办法可以做到这一点?
我不知道我是否真的知道您要做什么,但是如果您只想将这段代码从Java转换为C#,则应该执行以下操作:
KeyStore store = KeyStore.getInstance(BaseLicenseFactory.UBER, provider);
store.load(inputStream, password);
var aliases = store.aliases();
Dictionary<string, BaseLicense> licenses = store.aliases.ToDictionary(key => store.key, value => store.value);
请注意,您不应按原样复制/粘贴这段代码,因为它有一些假设:
KeyStore
,getInstance
和load
方法的aliases
类。 BaseLicenseFactory
值的UBER
类或枚举BaseLicense
类aliases
的结果转换为C#词典(应该与Java Maps类似(如果不相同)),并且aliases
中的每个对象都具有一个可以用作键的字符串属性,以及一个可以用作值的BaseLicense
属性。provider
值inputStream
值[不幸的是,这是我所能做的最好的事情,不知道上面描述的那些元素如何。如果您需要更多帮助,请考虑发布您在函数中使用的所有类和值]