वहाँ पोर्टेबल क्लास लाइब्रेरी MethodBase.GetCurrentMethod के बराबर है?पोर्टेबल क्लास लाइब्रेरी मेथडबेस के बराबर। GetCurrentMethod
मैं पीसीएल के लिए नया हूं। मैं सिर्फ यह देख रहा हूं कि मैं कुछ क्लाइंट कोड रखने के लिए पीसीएल का उपयोग कर सकता हूं जिसका निश्चित रूप से सिल्वरलाइट पर उपयोग किया जाएगा और कहीं और इस्तेमाल किया जा सकता है। स्रोत स्कैन करने के बाद, मैं MethodBase.GetCurrentMethod पर बहुत सी कॉल देख सकता हूं जो पीसीएल में मौजूद नहीं प्रतीत होता है।
** संपादित करें **
मैं प्रश्न में पुस्तकालय से बाहर इस नमूने फट गए हैं। IsNullOrEmpty() String.IsNullOrWhiteSpace (स्ट्रिंग) का उपयोग कर रहा था जो कि प्रतीत नहीं होता है, ताकि बिट एक झगड़ा हो।
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) }
)
);
}
}
}
पीसीएल की आवश्यकता वाले डिवाइस गर्मियों 2013 तक दिखाई नहीं देंगे। शायद उन तरीकों को छोड़ने के लिए पर्याप्त समय नहीं है जो समर्थित नहीं हैं? GetCurrentMethod() निश्चित रूप से एक महत्वपूर्ण चूक नहीं होना चाहिए। –