2016-06-29 2 views
0

Ich habe Code geerbt, die ich decompile mussten,Casting HtmlString auf T

Aus dem Code, den ich ein Problem bin immer, das ich nicht lösen kann, ein Objekt zu HtmlString Casting auf T

if (typeof(T) == typeof(IHtmlString)) 
{ 
    return (T)(new HtmlString(value.ToString())); 
} 

Die Fehler beim Erstellen als ungültiger Cast-Ausdruck habe ich versucht, Convert.ChangeType zu verwenden, aber das funktioniert auch nicht.

return (T)Convert.ChangeType(new HtmlString(value.ToString()), typeof(T)); 

Start von Ideen, hat jeder eine Lösung?

+0

müssen versucht, die 'wo U: IConvertible' Einschränkung: http://stackoverflow.com/a/6884667/284240 –

+0

können Sie komplette Methode vorschlagen? –

+1

Was ist mit 'return (T) (Objekt) (new HtmlString (value.ToString()));'? Aber wirklich die Art von 'T' zu überprüfen und Casting irgendwie zu besiegen, den ganzen Zweck des Generierens von Generika an erster Stelle. – juharr

Antwort

0

Sie um diese erste durch Gießen zu object bekommen kann.

if (typeof(T) == typeof(IHtmlString)) 
{ 
    return (T)(object)(new HtmlString(value.ToString())); 
} 
0

Wie wäre es

if (typeof(T) == typeof(IHtmlString)) 
{ 
    dynamic result = new HtmlString(value.ToString()); 
    return (T)result; 
}