Использовать .jar библиотеку API Java в C#?

Создайте следующий вспомогательный метод:

public string GetDynamicResourceKey(DependencyObject dObj, DependencyProperty dp)
{
    var value = dObj.ReadLocalValue(dp);
    var converter = new ResourceReferenceExpressionConverter();
    var dynamicResource = converter.ConvertTo(value, typeof(MarkupExtension)) as DynamicResourceExtension;
    return dynamicResource?.ResourceKey as string;
}

Теперь используйте его со своими TextBlock:

var resourceKey = GetDynamicResourceKey(txMy, TextBlock.TextProperty);

Я адаптировал это решение из здесь .

51
задан Community 23 May 2017 в 02:10
поделиться

2 ответа

Можно сделать это с помощью IVKM.Net. IVKM.NET включает приложение, названное ikvmc. Here’s документация для этого инструмента:

http://www.ikvm.net/userguide/ikvmc.html

Для использования его компилирует код Java в Банку.

Затем запускает ikvmc программу:

ikvmc myCode.jar

, Если Ваша банка содержит основное () функция, она будет преобразована в exe, который может быть выполнен на CLR. Иначе это будет преобразовано в dll’s. Для использования dll’s в проекте просто добавляют их как ссылки в Visual Studio и том же API, который был доступен Вам в Java, будет доступно в Вашем приложении .NET.

можно также включать IKVM.GNU.Classpath.dll dll от ikvmc и использовать стандартные библиотеки классов Java в приложении.

72
ответ дан Xaniff 7 November 2019 в 10:15
поделиться

Взгляните на IKVM... он имеет инструменты, чтобы дать Вам некоторый уровень interop. Когда Вы говорите, что Java API, я принимаю Вас, хочет назвать некоторую функциональность от банки, а не просто выполнить его

6
ответ дан Rad 7 November 2019 в 10:15
поделиться