Ich habe diesen Code in .Net 4.6.2 und nun versucht, in .Net Kern zu konvertieren aber ich bin immer FehlerIsGenericType & IsValueType fehlt von .Net Core?
Fehler CS1061 ‚Typ‘ enthält keine Definition für ‚IsGenericType‘ und ohne Erweiterung enthält Methode ‚IsGenericType‘ ein erstes Argument von Typ ‚Typ‘ die Annahme gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Montage Referenz?)
public static class StringExtensions
{
public static TDest ConvertStringTo<TDest>(this string src)
{
if (src == null)
{
return default(TDest);
}
return ChangeType<TDest>(src);
}
private static T ChangeType<T>(string value)
{
var t = typeof(T);
// getting error here at t.IsGenericType
if (t.IsGenericType && t.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
{
if (value == null)
{
return default(T);
}
t = Nullable.GetUnderlyingType(t);
}
return (T)Convert.ChangeType(value, t);
}
}
Was in .Net-Core entspricht?
Update1
Überraschenderweise wenn ich den Code debuggen Ich sehe Variable t
hat IsGenericType
Eigenschaft jedoch kann ich nicht IsGenericType
im Code verwenden. Nicht sicher, warum oder welchen Namespace ich hinzufügen muss. Ich habe using System
und using System.Runtime
beiden Namensräume hinzugefügt
@svick Ist 'GetTypeInfo()' Erweiterung Methode in einem anderen Namespace? intelissense kann es nicht finden – LP13
Nicht sicher, warum fragst du mich, aber ja, es ist in 'System.Reflection'. – svick