.NET 5에서 Microsoft Store 인앱 결제 API를 호출하는 방법
인앱 결제의 API를 MSIX화한 WPF나 WinForms 등의 앱에서 호출하려면
IInitializeWithWindow
라는 인터페이스를 스스로 만들어 캐스팅하고 있습니다.인앱 결제 API를 실제로 시도하는 것은 약간 무거워서 .NET 5에서 WPF 앱을 만들고 Target Framework Monikers에 net5.0-windows10.0.19041.0을 지정하여 호출하는 데 동일한 단계가 필요합니다. FileOpenPicker 클래스에서 시도해 봤는데
Initialize
인터페이스로의 캐스트에 실패했습니다.그럼 어떻게 할까? 라는 느낌입니다만
IInitializeWithWindow
를 추가해 using WinRT;
메소드로 As<T>
에 캐스트 해 주면 됩니다.using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interop;
using Windows.Storage.Pickers;
using WinRT;
namespace WpfApp2
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
var picker = new FileOpenPicker();
// It doesn't work on .NET 5
// ((IInitializeWithWindow)(object)picker).Initialize(...);
var w = picker.As<IInitializeWithWindow>();
w.Initialize(new WindowInteropHelper(this).Handle);
picker.FileTypeFilter.Add(".png");
var file = await picker.PickSingleFileAsync();
MessageBox.Show(file?.Name ?? "not selected");
}
}
[ComImport]
[Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize(IntPtr hwnd);
}
}
같은 요령으로 인앱 과금의 API도 두드릴 것 같다는 분위기.
Reference
이 문제에 관하여(.NET 5에서 Microsoft Store 인앱 결제 API를 호출하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okazuki/items/227f8d19e38a67099006텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)