У меня есть небольшая проблема при выполнении запроса CQLinq.NDepend маленькой проблема проверка имени устаревшего метода
Я пытаюсь получить метод, который устарел с заданным fullnames, что означает, что я хочу, чтобы конкретно указать, какие методы являются устаревшими по FullName.
Результат должен выскочить 5 матчей, что означает метод CallME(), который является устаревшим, должны быть включены:
Однако CallME() не включается, когда я делаю этот запрос!
// <Name>Don't use obsolete types, methods or fields</Name>
warnif count > 0
let oConcreteM = new String[] {"usageAssembly.Class1.callMe()"}
let obsoleteTypes = Types.Where(t => t.IsObsolete)
let obsoleteMethods = Methods.Where(m => m.IsObsolete
&& oConcreteM.Contains(m.FullName)).ToHashSet() //TODO HERE!! (Specify callMe())
from m in JustMyCode.Methods.UsingAny(obsoleteTypes).Union(
JustMyCode.Methods.UsingAny(obsoleteMethods)).Union(
JustMyCode.Methods.UsingAny(obsoleteFields))
let obsoleteTypesUsed = obsoleteTypes.UsedBy(m)
// Optimization: MethodsCalled + Intersect() is faster than using obsoleteMethods.UsedBy()
let obsoleteMethodsUsed = m.MethodsCalled.Intersect(obsoleteMethods)
let obsoleteFieldsUsed = obsoleteFields.UsedBy(m)
select new { m,obsoleteTypesUsed, obsoleteMethodsUsed, obsoleteFieldsUsed }
С выше запроса, CallME() нет, но, чтобы получить 5 матчей, мы должны удалить «& & oConcreteM.Contains (m.FullName)» код, но я не хочу, что Я хочу проверить, совпадает ли имя в методе Полное имя в oConcreteM. Вот что выход дает мне:
Я надеюсь, что вы, ребята, там может помочь мне :)
все тот же, я хочу, чтобы callMe() также был распечатан. Но опять же, это, кажется, дает мед только «4 метода соответствует», но я хочу «5 методы соответствуют» –
, который означает, что я хочу, чтобы распечатать ** ** только те методы, которые приведены в oConcreteM и игнорировать любые другие методы, которые устарели. если возможно –
где вы хотите * распечатать только те методы, которые указаны в oConcreteM *? В первом столбце или в другом столбце? Если в другом столбце, какой элемент кода fo вы хотите увидеть в первом столбце? –