Il seguente codice genera un'eccezione. TryConvert non viene chiamato per il cast da interfacciare. Perchè è questo? Posso aggirare il problema?DynamicObject.TryConvert non chiamato durante la trasmissione al tipo di interfaccia
using System.Dynamic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
dynamic test = new JsonNull();
var ok = (string)test;
// Next line throws:
// Unable to cast object of type 'ConsoleApplication1.JsonNull' to type 'ConsoleApplication1.IFoo'.
var fail = (IFoo)test;
}
}
class JsonNull : DynamicObject
{
public override bool TryConvert(ConvertBinder binder, out object result)
{
result = null;
return !binder.Type.IsValueType;
}
}
interface IFoo { }
}
Che cosa dice la documentazione? E 'questo supportato? – leppie
Avete mai trovato un modo per aggirare il problema? –
No, mi dispiace, non l'ho fatto :( –