Poniższy kod kompiluje:C#: Przedłużacze Metody niedostępne z aliasem stosując dyrektywę
using Microsoft.SharePoint.Client
class Dummy()
{
void DummyFunction(ClientContext ctx, ListCollection lists)
{
Context.Load(lists, lc => lc.Include(l => l.DefaultViewUrl);
}
}
Jednak po przełączeniu do aliasem użyciu, nie ma problemu z funkcją obejmują, co stanowi metodę rozszerzenia:
using SP = Microsoft.SharePoint.Client
class DummyAliased()
{
void DummyFunction(SP.ClientContext ctx, SP.ListCollection lists)
{
/* Does not compile: */
Context.Load(lists, lc => lc.Include(l => l.DefaultViewUrl);
/* Compiles (not using function as generic) */
Context.Load(lists, lc => SP.ClientObjectQueryableExtension.Include(lc, l => l.DefaultViewUrl));
}
}
Funkcji Include można nadal używać, ale nie jako metody rozszerzenia. Czy istnieje sposób użycia go jako metody rozszerzającej bez un-aliasingu dyrektywy using?
Podobne pytanie http://stackoverflow.com/questions/3337453 pyta _dlaczego to nie działa_. Proszę o lepsze rozwiązanie, niż to, co pokazałem. – Hutch