Stack APIとインターフェイスするアプリをまとめて、 このチュートリアル を実行しています(ただし、古いAPIバージョンでも動作します)。私の問題は、これをWindows 8ストアアプリ内で使用すると、以下にあるGetCustomAttributes
メソッドをサポートしない.NETCore Frameworkによって制約されることです。
private static IEnumerable<T> ParseJson<T>(string json) where T : class, new()
{
var type = typeof (T);
var attribute = type.GetCustomAttributes(typeof (WrapperObjectAttribute), false).SingleOrDefault() as WrapperObjectAttribute;
if (attribute == null)
{
throw new InvalidOperationException(
String.Format("{0} type must be decorated with a WrapperObjectAttribute.", type.Name));
}
var jobject = JObject.Parse(json);
var collection = JsonConvert.DeserializeObject<List<T>>(jobject[attribute.WrapperObject].ToString());
return collection;
}
私の質問は2つあります。正確にGetCustomAttributes
は何をしますか。また、Windows 8ストアアプリレルムの制約内でこのメソッドに相当するものはありますか?
System.Reflection.TypeExtensionsナゲットパッケージをプロジェクトに追加します。 GetCustomAttributes拡張があります。
(VS 2017の場合)このようなもの。
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.6'">
<PackageReference Include="System.Reflection.TypeExtensions">
<Version>4.3.0</Version>
</PackageReference>
</ItemGroup>