s allí Biblioteca de clases portátil equivalente a MethodBase.GetCurrentMethod?Biblioteca de clases portátil equivalente a MethodBase.GetCurrentMethod
Soy nuevo en PCLs. Estoy investigando si puedo usar una PCL para guardar algún código de cliente que definitivamente se utilizará en Silverlight y se puede usar en cualquier otro lugar. Después de haber escaneado la fuente, puedo ver muchas llamadas a MethodBase.GetCurrentMethod que no parece existir en la PCL.
** ** EDITAR
He arrancado esta muestra fuera de la biblioteca en cuestión. IsNullOrEmpty() estaba usando String.IsNullOrWhiteSpace (String) que no parece estar disponible, por lo que ese bit es un dulce de azúcar.
using System;
using System.Linq;
using System.Reflection;
using System.Linq.Expressions;
namespace LinqToLdap.PCL
{
public static class QueryableExtensions
{
internal static bool IsNullOrEmpty(this String str)
{
return string.IsNullOrEmpty(str);
}
public static IQueryable<TSource> FilterWith<TSource>(this IQueryable<TSource> source, string filter)
{
if (source == null) throw new ArgumentNullException("source");
if (filter.IsNullOrEmpty()) throw new Exception("Filters cannot be null, empty, or white-space.");
if (!filter.StartsWith("("))
{
filter = "(" + filter + ")";
}
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
((MethodInfo)MethodBase.GetCurrentMethod())
.MakeGenericMethod(new[] { typeof(TSource) }),
new[] { source.Expression, Expression.Constant(filter) }
)
);
}
}
}
Los dispositivos que requieren PCL no aparecerán hasta el verano de 2013. ¿Tal vez el tiempo suficiente para descubrir cómo renunciar a los métodos que no son compatibles? GetCurrentMethod() ciertamente no debería ser una omisión crítica. –