It is recommended to use the NDepend interactive UI capabilities
to make the most of NDepend by mastering all aspects of your code.
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
Rules summary
666211This section lists all Rules violated, and Rules or Queries with Error- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
- Number of Rules violated: 73
Summary of Rules violated

development-time, from within Visual
Studio. Online documentation.

existing code base? Use the option
Recent Violations Only!

can be used to break the build process if
violated. Online documentation.
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | 33 interfaces | 1.52 | 1.54 | 8 properties on Newtonsoft.Json.Converters.IXmlNode |
Methods on interfaces | 33 interfaces | 3.15 | 2.74 | 13 methods on Newtonsoft.Json.Converters.IXmlDocument |
Arguments on methods on interfaces | 104 methods | 0.66 | 0.85 | 4 arguments on Newtonsoft.Json.Converters.IXmlDocument.CreateXmlDocumentType(String,String,String,String) |
Public properties on classes | 1,362 Classes | 1.19 | 2.55 | 33 public properties on Newtonsoft.Json.Schema.JsonSchema |
Public methods on classes | 1,362 classes | 5.75 | 12.78 | 321 public methods on Newtonsoft.Json.Tests.Serialization.JsonSerializerTest |
Arguments on public methods on classes | 7,832 methods | 0.47 | 0.76 | 7 arguments on Newtonsoft.Json.Utilities.JavaScriptUtils.WriteEscapedJavaScriptString(TextWriter,String,Char,Boolean,Boolean[],StringEscapeHandling,Char[]&) |
IL instructions in non-abstract methods | 9,626 methods | 26.38 | 128.76 | 9380 IL instructions in Newtonsoft.Json.Tests.Linq.DynamicTests.JValueAddition() |
Cyclomatic complexity on non abstract Methods | 9,626 Methods | 1.95 | 5.41 | CC = 328 for Newtonsoft.Json.Tests.Linq.DynamicTests.JValueAddition() |
Assemblies Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Assemblies | # lines of code | # IL instruction | # Types | # Abstract Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling | Relational Cohesion | Instability | Abstractness | Distance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Newtonsoft.Json v6.0.0.0 | 12594 | 92913 | 313 | 26 | 11097 | 46 | - | 650 | 320 | 4.73 | 0.33 | 0.09 | 0.41 |
Newtonsoft.Json.Tests v6.0.0.0 | 19110 | 160975 | 1155 | 33 | 7297 | 27 | - | 0 | 548 | 1.31 | 1 | 0.03 | 0.02 |
Types Metrics
If the code base analyzed has too many types, NDepend doesn't list Types Metrics to avoid a too big report. The section Types Metrics can be activated by unchecking the option: NDepend Project Properties > Report > Avoid too big report for large code base > Hide section Types Metrics if... It is recommended to use the NDepend interactive UI capabilities to browse large applications. |
Namespaces Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces | # lines of code | # IL instruction | # Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|---|
Newtonsoft.Json | 2604 | 18408 | 54 | 2383 | 47 | - | 24 | 26 |
Newtonsoft.Json.Bson | 588 | 3422 | 16 | 262 | 30 | - | 7 | 11 |
Newtonsoft.Json.Converters | 1144 | 7859 | 39 | 489 | 29 | - | 10 | 18 |
Newtonsoft.Json.Utilities | 2327 | 17026 | 80 | 310 | 11 | - | 14 | 23 |
Newtonsoft.Json.Schema | 704 | 5728 | 22 | 362 | 33 | - | 5 | 16 |
Newtonsoft.Json.Serialization | 2748 | 20778 | 55 | 951 | 25 | - | 14 | 30 |
Newtonsoft.Json.Linq | 1968 | 14559 | 27 | 1804 | 47 | - | 18 | 21 |
Newtonsoft.Json.Linq.JsonPath | 511 | 5133 | 20 | 12 | 2 | - | 2 | 12 |
0 | 1747 | 19 | - | - | - | 7 | 5 | |
Newtonsoft.Json.Tests | 4345 | 25675 | 129 | 280 | 6 | - | 10 | 36 |
Newtonsoft.Json.Tests.Bson | 1333 | 6902 | 15 | 35 | 2 | - | 0 | 19 |
Newtonsoft.Json.Tests.Converters | 1212 | 9639 | 60 | 124 | 9 | - | 0 | 30 |
Newtonsoft.Json.Tests.LinqToSql | 201 | 1709 | 11 | 0 | 0 | - | 0 | 16 |
Newtonsoft.Json.Tests.Schema | 742 | 4544 | 38 | 15 | 1 | - | 0 | 17 |
Newtonsoft.Json.Tests.Serialization | 5700 | 46843 | 407 | 451 | 7 | - | 5 | 53 |
Newtonsoft.Json.Tests.TestObjects | 653 | 7028 | 176 | 117 | 15 | - | 8 | 28 |
Newtonsoft.Json.Tests.Utilities | 229 | 1340 | 7 | 10 | 4 | - | 0 | 14 |
Newtonsoft.Json.Tests.Documentation | 366 | 3363 | 44 | 380 | 50 | - | 3 | 25 |
Newtonsoft.Json.Tests.Documentation .Samples.Bson | 22 | 213 | 6 | 16 | 42 | - | 0 | 6 |
Newtonsoft.Json.Tests.Documentation .Samples.Json | 24 | 124 | 2 | 23 | 48 | - | 0 | 4 |
Newtonsoft.Json.Tests.Documentation .Samples.Linq | 253 | 2652 | 42 | 229 | 47 | - | 0 | 17 |
Newtonsoft.Json.Tests.Documentation .Samples.Schema | 73 | 483 | 12 | 31 | 29 | - | 0 | 9 |
Newtonsoft.Json.Tests.Documentation .Samples.Serializer | 328 | 3755 | 101 | 349 | 51 | - | 0 | 18 |
Newtonsoft.Json.Tests.Documentation .Samples.Xml | 18 | 67 | 3 | 49 | 73 | - | 0 | 4 |
Newtonsoft.Json.Tests.Linq | 3005 | 39471 | 66 | 106 | 3 | - | 1 | 28 |
Newtonsoft.Json.Tests.Linq .ComponentModel | 30 | 262 | 2 | 0 | 0 | - | 0 | 6 |
Newtonsoft.Json.Tests.Linq.JsonPath | 576 | 5158 | 15 | 11 | 1 | - | 0 | 10 |
0103
Code Quality |
|
![]() | Critical Rule warning: Types too big - critical |
warnif count > 0 from t in JustMyCode.Types where
t.NbLinesOfCode > 500
// We've commented # IL Instructions, because with LINQ syntax, a few lines of code can compile to hundreds of IL instructions.
// || t.NbILInstructions > 3000
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode, t.NbILInstructions,
t.Methods, t.Fields }
// Types where NbLinesOfCode > 500 are extremely complex
// and should be split in a smaller group of types.
// See the definition of the NbLinesOfCode metric here
// http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
// In average, a line of code is compiled to around
// 6 IL instructions. This is why the code metric
// NbILInstructions is used here, in case the
// code metric NbLinesOfCode is un-available because
// of missing assemblies corresponding PDB files.
// See the definition of the NbILInstructions metric here
// http://www.ndepend.com/Metrics.aspx#NbILInstructions
View Code Query or Rule Body
10 types matched
types | # lines of code (LOC) | # IL instructions | Methods | Fields | Full Name |
---|---|---|---|---|---|
JsonSerializerTest | 2 102 | 14 129 | 353 methods | 27 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JsonTextReaderTest | 1 568 | 8 883 | 123 methods | 1 field | Newtonsoft.Json.Tests.JsonTextReaderTest |
BsonReaderTests | 912 | 4 635 | 59 methods | 1 field | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
JsonSerializerInternalReader | 906 | 6 719 | 51 methods | 8 fields | Newtonsoft.Json.Serialization .JsonSerializerInternalReader |
JObjectTests | 770 | 5 001 | 138 methods | 27 fields | Newtonsoft.Json.Tests.Linq.JObjectTests |
JsonValidatingReaderTests | 754 | 3 967 | 50 methods | 3 fields | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
JsonTextWriterTest | 675 | 3 421 | 46 methods | 4 fields | Newtonsoft.Json.Tests.JsonTextWriterTest |
JsonTextReader | 638 | 4 123 | 49 methods | 11 fields | Newtonsoft.Json.JsonTextReader |
JTokenTests | 542 | 5 607 | 79 methods | 45 fields | Newtonsoft.Json.Tests.Linq.JTokenTests |
JToken | 529 | 4 212 | 137 methods | 16 fields | Newtonsoft.Json.Linq.JToken |
Statistics
Stat | # lines of code (LOC) | # IL instructions | Methods | Fields |
---|---|---|---|---|
Sum: | 9 396 | 60 697 | 0 | 0 |
Average: | 939.6 | 6 069 | 0 | 0 |
Minimum: | 529 | 3 421 | 0 | 0 |
Maximum: | 2 102 | 14 129 | 0 | 0 |
Standard deviation: | 479.46 | 3 088 | 0 | 0 |
Variance: | 229 881 | 9 538 076 | 0 | 0 |
![]() | Critical Rule warning: Methods too complex - critical |
warnif count > 0 from m in JustMyCode.Methods where
m.ILCyclomaticComplexity > 40 &&
m.ILNestingDepth > 5
orderby m.ILCyclomaticComplexity descending,
m.ILNestingDepth descending
select new { m, m.ILCyclomaticComplexity, m.ILNestingDepth }
// Methods with ILCyclomaticComplexity > 40 and ILNestingDepth > 4
// are really too complex and should be split
// in smaller methods, or even types.
// See the definition of the ILCyclomaticComplexity metric here
// http://www.ndepend.com/Metrics.aspx#ILCC
// See the definition of the ILNestingDepth metric here
// http://www.NDepend.com/Metrics.aspx#ILNestingDepthView Code Query or Rule Body
5 methods matched
methods | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | Full Name |
---|---|---|---|
Operation(ExpressionType,Object,Object ,Object&) | 64 | 13 | Newtonsoft.Json.Linq.JValue.Operation (ExpressionType,Object,Object,Object&) |
WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) | 51 | 6 | Newtonsoft.Json.Utilities .JavaScriptUtils .WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) |
CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) | 51 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) |
ReadStringIntoBuffer(Char) | 44 | 12 | Newtonsoft.Json.JsonTextReader .ReadStringIntoBuffer(Char) |
ParseValue() | 43 | 12 | Newtonsoft.Json.JsonTextReader .ParseValue() |
Statistics
Stat | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth |
---|---|---|
Sum: | 253 | 49 |
Average: | 50.6 | 9.8 |
Minimum: | 43 | 6 |
Maximum: | 64 | 13 |
Standard deviation: | 7.5 | 3.12 |
Variance: | 56.24 | 9.76 |
![]() | Critical Rule warning: Methods with too many parameters - critical |
warnif count > 0 from m in JustMyCode.Methods where
m.NbParameters > 8
orderby m.NbParameters descending
select new { m, m.NbParameters }
// Methods with more than 8 parameters might be painful to call
// and might degrade performance. You should prefer using
// additional properties/fields to the declaring type to
// handle numerous states. Another alternative is to provide
// a class or structure dedicated to handle arguments passing
// (for example see the class System.Diagnostics.ProcessStartInfo
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here
// http://www.ndepend.com/Metrics.aspx#NbParameters
View Code Query or Rule Body
3 methods matched
methods | # Parameters | Full Name |
---|---|---|
CalculatePropertyDetails(JsonProperty ,JsonConverter&,JsonContainerContract ,JsonProperty,JsonReader,Object,Boolean& ,Object&,JsonContract&,Boolean&) | 10 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CalculatePropertyDetails(JsonProperty ,JsonConverter&,JsonContainerContract ,JsonProperty,JsonReader,Object,Boolean& ,Object&,JsonContract&,Boolean&) |
ReadMetadataPropertiesToken(JTokenReader ,Type&,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 9 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataPropertiesToken (JTokenReader,Type&,JsonContract& ,JsonProperty,JsonContainerContract ,JsonProperty,Object,Object&,String&) |
ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 9 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) |
Statistics
Stat | # Parameters |
---|---|
Sum: | 28 |
Average: | 9.33 |
Minimum: | 9 |
Maximum: | 10 |
Standard deviation: | 0.47 |
Variance: | 0.22 |
![]() | Rule warning: Quick summary of methods to refactor |
warnif count > 0 from m in JustMyCode.Methods where
// Code Metrics' definitions
m.NbLinesOfCode > 30 || // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
// We've commented # IL Instructions, because with LINQ syntax, a few lines of code can compile to hundreds of IL instructions.
// m.NbILInstructions > 200 || // http://www.ndepend.com/Metrics.aspx#NbILInstructions
m.CyclomaticComplexity > 20 || // http://www.ndepend.com/Metrics.aspx#CC
m.ILCyclomaticComplexity > 50 || // http://www.ndepend.com/Metrics.aspx#ILCC
m.ILNestingDepth > 5 || // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
m.NbParameters > 5 || // http://www.ndepend.com/Metrics.aspx#NbParameters
m.NbVariables > 8 || // http://www.ndepend.com/Metrics.aspx#NbVariables
m.NbOverloads > 6 // http://www.ndepend.com/Metrics.aspx#NbOverloads
select new { m, m.NbLinesOfCode, m.NbILInstructions, m.CyclomaticComplexity,
m.ILCyclomaticComplexity, m.ILNestingDepth,
m.NbParameters, m.NbVariables, m.NbOverloads } View Code Query or Rule Body
483 methods matched
methods | # lines of code (LOC) | # IL instructions | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | # Parameters | # Variables | # Overloads | Full Name |
---|---|---|---|---|---|---|---|---|---|
ReadAsBytesInternal() | 44 | 247 | 17 | 21 | 4 | 0 | 6 | 1 | Newtonsoft.Json.JsonReader .ReadAsBytesInternal() |
WriteToken(JsonReader,Int32,Boolean ,Boolean) | 52 | 266 | 38 | 42 | 3 | 4 | 2 | 4 | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Int32,Boolean,Boolean) |
AutoCompleteClose(JsonContainerType) | 34 | 174 | 15 | 21 | 3 | 1 | 6 | 1 | Newtonsoft.Json.JsonWriter .AutoCompleteClose(JsonContainerType) |
AutoComplete(JsonToken) | 11 | 118 | 14 | 13 | 6 | 1 | 1 | 1 | Newtonsoft.Json.JsonWriter.AutoComplete (JsonToken) |
WriteValue(String) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (String) |
WriteValue(Int32) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Int32) |
WriteValue(UInt32) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (UInt32) |
WriteValue(Int64) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Int64) |
WriteValue(UInt64) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (UInt64) |
WriteValue(Single) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Single) |
WriteValue(Double) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Double) |
WriteValue(Boolean) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Boolean) |
WriteValue(Int16) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Int16) |
WriteValue(UInt16) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (UInt16) |
WriteValue(Char) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Char) |
WriteValue(Byte) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Byte) |
WriteValue(SByte) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (SByte) |
WriteValue(Decimal) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Decimal) |
WriteValue(DateTime) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (DateTime) |
WriteValue(DateTimeOffset) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (DateTimeOffset) |
WriteValue(Guid) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Guid) |
WriteValue(TimeSpan) | 1 | 6 | 1 | 1 | 0 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (TimeSpan) |
WriteValue(Nullable<Int32>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int32>) |
WriteValue(Nullable<UInt32>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt32>) |
WriteValue(Nullable<Int64>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int64>) |
WriteValue(Nullable<UInt64>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt64>) |
WriteValue(Nullable<Single>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Single>) |
WriteValue(Nullable<Double>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Double>) |
WriteValue(Nullable<Boolean>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Boolean>) |
WriteValue(Nullable<Int16>) | 3 | 30 | 2 | 5 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int16>) |
WriteValue(Nullable<UInt16>) | 3 | 30 | 2 | 5 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt16>) |
WriteValue(Nullable<Char>) | 3 | 30 | 2 | 5 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Char>) |
WriteValue(Nullable<Byte>) | 3 | 30 | 2 | 5 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Byte>) |
WriteValue(Nullable<SByte>) | 3 | 30 | 2 | 5 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<SByte>) |
WriteValue(Nullable<Decimal>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Decimal>) |
WriteValue(Nullable<DateTime>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTime>) |
WriteValue(Nullable<DateTimeOffset>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTimeOffset>) |
WriteValue(Nullable<Guid>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Guid>) |
WriteValue(Nullable<TimeSpan>) | 3 | 16 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<TimeSpan>) |
WriteValue(Byte[]) | 3 | 18 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Byte[]) |
WriteValue(Uri) | 3 | 18 | 2 | 3 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Uri) |
WriteValue(Object) | 5 | 37 | 7 | 4 | 1 | 1 | 0 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Object) |
WriteValue(JsonWriter,PrimitiveTypeCode ,Object) | 90 | 446 | 90 | 84 | 2 | 3 | 5 | 39 | Newtonsoft.Json.JsonWriter.WriteValue (JsonWriter,PrimitiveTypeCode,Object) |
ToString(DateTime) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTime) |
ToString(DateTime,DateFormatHandling ,DateTimeZoneHandling) | 6 | 41 | 1 | 3 | 2 | 3 | 2 | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTime,DateFormatHandling ,DateTimeZoneHandling) |
ToString(DateTimeOffset) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset) |
ToString(DateTimeOffset ,DateFormatHandling) | 5 | 37 | 1 | 3 | 2 | 2 | 1 | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset,DateFormatHandling) |
ToString(Boolean) | 1 | 11 | 2 | 3 | 1 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Boolean) |
ToString(Char) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Char) |
ToString(Enum) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Enum) |
ToString(Int32) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Int32) |
ToString(Int16) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Int16) |
ToString(UInt16) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (UInt16) |
ToString(UInt32) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (UInt32) |
ToString(Int64) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Int64) |
ToString(UInt64) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (UInt64) |
ToString(Single) | 1 | 12 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Single) |
ToString(Single,FloatFormatHandling,Char ,Boolean) | 1 | 18 | 1 | 1 | 0 | 4 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Single,FloatFormatHandling,Char,Boolean ) |
ToString(Double) | 1 | 11 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Double) |
ToString(Double,FloatFormatHandling,Char ,Boolean) | 1 | 16 | 1 | 1 | 0 | 4 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Double,FloatFormatHandling,Char,Boolean ) |
ToString(Byte) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Byte) |
ToString(SByte) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (SByte) |
ToString(Decimal) | 1 | 10 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Decimal) |
ToString(Guid) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (Guid) |
ToString(Guid,Char) | 3 | 18 | 4 | 1 | 0 | 2 | 1 | 29 | Newtonsoft.Json.JsonConvert.ToString (Guid,Char) |
ToString(TimeSpan) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (TimeSpan) |
ToString(TimeSpan,Char) | 1 | 10 | 1 | 1 | 0 | 2 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (TimeSpan,Char) |
ToString(Uri) | 3 | 19 | 2 | 3 | 1 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString(Uri ) |
ToString(Uri,Char) | 1 | 9 | 1 | 1 | 0 | 2 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString(Uri ,Char) |
ToString(String) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (String) |
ToString(String,Char) | 3 | 25 | 3 | 4 | 1 | 2 | 0 | 29 | Newtonsoft.Json.JsonConvert.ToString (String,Char) |
ToString(Object) | 26 | 134 | 30 | 25 | 1 | 1 | 1 | 29 | Newtonsoft.Json.JsonConvert.ToString (Object) |
SerializeObject(Object) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object) |
SerializeObject(Object,Formatting) | 1 | 9 | 1 | 1 | 0 | 2 | 0 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object,Formatting) |
SerializeObject(Object,JsonConverter[]) | 2 | 27 | 3 | 4 | 2 | 2 | 2 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object,JsonConverter[]) |
SerializeObject(Object,Formatting ,JsonConverter[]) | 2 | 28 | 3 | 4 | 2 | 3 | 2 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object,Formatting ,JsonConverter[]) |
SerializeObject(Object ,JsonSerializerSettings) | 1 | 9 | 1 | 1 | 0 | 2 | 0 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object ,JsonSerializerSettings) |
SerializeObject(Object,Type ,JsonSerializerSettings) | 2 | 12 | 1 | 1 | 0 | 3 | 1 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object,Type ,JsonSerializerSettings) |
SerializeObject(Object,Formatting ,JsonSerializerSettings) | 1 | 10 | 1 | 1 | 0 | 3 | 0 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object,Formatting ,JsonSerializerSettings) |
SerializeObject(Object,Type,Formatting ,JsonSerializerSettings) | 3 | 16 | 1 | 1 | 0 | 4 | 1 | 8 | Newtonsoft.Json.JsonConvert .SerializeObject(Object,Type,Formatting ,JsonSerializerSettings) |
DeserializeObject(String) | 1 | 9 | 1 | 1 | 0 | 1 | 0 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject(String) |
DeserializeObject(String ,JsonSerializerSettings) | 1 | 9 | 1 | 1 | 0 | 2 | 0 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject(String ,JsonSerializerSettings) |
DeserializeObject(String,Type) | 1 | 9 | 1 | 1 | 0 | 2 | 0 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject(String,Type) |
DeserializeObject<T>(String) | 1 | 8 | 1 | 1 | 0 | 1 | 0 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject<T>(String) |
DeserializeObject<T>(String ,JsonConverter[]) | 1 | 11 | 1 | 1 | 0 | 2 | 0 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject<T>(String ,JsonConverter[]) |
DeserializeObject<T>(String ,JsonSerializerSettings) | 1 | 11 | 1 | 1 | 0 | 2 | 0 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject<T>(String ,JsonSerializerSettings) |
DeserializeObject(String,Type ,JsonConverter[]) | 2 | 27 | 3 | 4 | 2 | 3 | 2 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject(String,Type ,JsonConverter[]) |
DeserializeObject(String,Type ,JsonSerializerSettings) | 6 | 41 | 2 | 4 | 2 | 3 | 2 | 8 | Newtonsoft.Json.JsonConvert .DeserializeObject(String,Type ,JsonSerializerSettings) |
ApplySerializerSettings(JsonSerializer ,JsonSerializerSettings) | 61 | 380 | 30 | 31 | 2 | 2 | 1 | 1 | Newtonsoft.Json.JsonSerializer .ApplySerializerSettings(JsonSerializer ,JsonSerializerSettings) |
DeserializeInternal(JsonReader,Type) | 9 | 75 | 5 | 6 | 2 | 2 | 9 | 1 | Newtonsoft.Json.JsonSerializer .DeserializeInternal(JsonReader,Type) |
SetupReader(JsonReader,CultureInfo& ,Nullable<DateTimeZoneHandling>& ,Nullable<DateParseHandling>&,Nullable <FloatParseHandling>&,Nullable<Int32>& ,String&) | 24 | 255 | 13 | 33 | 2 | 7 | 0 | 1 | Newtonsoft.Json.JsonSerializer .SetupReader(JsonReader,CultureInfo& ,Nullable<DateTimeZoneHandling>& ,Nullable<DateParseHandling>&,Nullable <FloatParseHandling>&,Nullable<Int32>& ,String&) |
ResetReader(JsonReader,CultureInfo ,Nullable<DateTimeZoneHandling>,Nullable <DateParseHandling>,Nullable <FloatParseHandling>,Nullable<Int32> ,String) | 12 | 70 | 7 | 7 | 1 | 7 | 0 | 1 | Newtonsoft.Json.JsonSerializer .ResetReader(JsonReader,CultureInfo ,Nullable<DateTimeZoneHandling>,Nullable <DateParseHandling>,Nullable <FloatParseHandling>,Nullable<Int32> ,String) |
SerializeInternal(JsonWriter,Object,Type ) | 48 | 405 | 26 | 44 | 2 | 3 | 9 | 1 | Newtonsoft.Json.JsonSerializer .SerializeInternal(JsonWriter,Object ,Type) |
ReadStringIntoBuffer(Char) | 93 | 498 | 36 | 44 | 12 | 1 | 9 | 1 | Newtonsoft.Json.JsonTextReader .ReadStringIntoBuffer(Char) |
ReadNumberIntoBuffer() | 16 | 117 | 39 | 15 | 6 | 0 | 2 | 1 | Newtonsoft.Json.JsonTextReader .ReadNumberIntoBuffer() |
ParsePostValue() | 33 | 193 | 16 | 23 | 9 | 0 | 1 | 1 | Newtonsoft.Json.JsonTextReader .ParsePostValue() |
ParseObject() | 23 | 130 | 13 | 18 | 6 | 0 | 1 | 1 | Newtonsoft.Json.JsonTextReader .ParseObject() |
ParseValue() | 62 | 364 | 34 | 43 | 12 | 0 | 2 | 1 | Newtonsoft.Json.JsonTextReader .ParseValue() |
ParseConstructor() | 39 | 229 | 12 | 17 | 4 | 0 | 4 | 1 | Newtonsoft.Json.JsonTextReader .ParseConstructor() |
ParseNumber() | 68 | 535 | 33 | 41 | 4 | 0 | 16 | 1 | Newtonsoft.Json.JsonTextReader .ParseNumber() |
Statistics
Stat | # lines of code (LOC) | # IL instructions | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | # Parameters | # Variables | # Overloads |
---|---|---|---|---|---|---|---|---|
Sum: | 8 614 | 72 506 | 3 342 | 4 329 | 655 | 701 | 1 517 | 7 474 |
Average: | 17.83 | 150.12 | 6.92 | 8.96 | 1.36 | 1.45 | 3.14 | 15.47 |
Minimum: | 1 | 6 | 1 | 1 | 0 | 0 | 0 | 1 |
Maximum: | 238 | 9 380 | 90 | 328 | 13 | 10 | 25 | 39 |
Standard deviation: | 23.84 | 537.94 | 10.59 | 21.18 | 2.14 | 1.74 | 4.39 | 14.98 |
Variance: | 568.29 | 289 374 | 112.07 | 448.59 | 4.59 | 3.04 | 19.28 | 224.27 |
![]() | Rule warning: Methods too big |
warnif count > 0 from m in JustMyCode.Methods where
m.NbLinesOfCode > 30
// We've commented # IL Instructions, because with LINQ syntax, a few lines of code can compile to hundreds of IL instructions.
// || m.NbILInstructions > 200
orderby m.NbLinesOfCode descending,
m.NbILInstructions descending
select new { m, m.NbLinesOfCode, m.NbILInstructions }
// Methods where NbLinesOfCode > 30 or NbILInstructions > 200
// are extremely complex and should be split in smaller methods.
// See the definition of the NbLinesOfCode metric here
// http://www.ndepend.com/Metrics.aspx#NbLinesOfCodeView Code Query or Rule Body
117 methods matched
methods | # lines of code (LOC) | # IL instructions | Full Name |
---|---|---|---|
JValueAddition() | 238 | 9 380 | Newtonsoft.Json.Tests.Linq.DynamicTests .JValueAddition() |
Casting() | 127 | 1 044 | Newtonsoft.Json.Tests.Linq.JTokenTests .Casting() |
WriteDateTime() | 117 | 1 121 | Newtonsoft.Json.Tests.JsonConvertTest .WriteDateTime() |
Depth() | 95 | 490 | Newtonsoft.Json.Tests.JsonTextReaderTest .Depth() |
ReadStringIntoBuffer(Char) | 93 | 498 | Newtonsoft.Json.JsonTextReader .ReadStringIntoBuffer(Char) |
ValidateCurrentToken() | 92 | 450 | Newtonsoft.Json.JsonValidatingReader .ValidateCurrentToken() |
WriteValue(JsonWriter,PrimitiveTypeCode ,Object) | 90 | 446 | Newtonsoft.Json.JsonWriter.WriteValue (JsonWriter,PrimitiveTypeCode,Object) |
SingleLineComments() | 84 | 485 | Newtonsoft.Json.Tests.JsonTextReaderTest .SingleLineComments() |
Serialize (PerformanceTests+SerializeMethod,Object ) | 84 | 446 | Newtonsoft.Json.Tests.PerformanceTests .Serialize (PerformanceTests+SerializeMethod,Object ) |
SerializeNode(JsonWriter,IXmlNode ,XmlNamespaceManager,Boolean) | 76 | 520 | Newtonsoft.Json.Converters .XmlNodeConverter.SerializeNode (JsonWriter,IXmlNode,XmlNamespaceManager ,Boolean) |
ParseArrayIndexer(Char) | 75 | 462 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseArrayIndexer(Char) |
JValueEquals() | 73 | 6 765 | Newtonsoft.Json.Tests.Linq.DynamicTests .JValueEquals() |
TryConvertInternal(Object,CultureInfo ,Type,Object&) | 71 | 466 | Newtonsoft.Json.Utilities.ConvertUtils .TryConvertInternal(Object,CultureInfo ,Type,Object&) |
GenerateInternal(Type,Required,Boolean) | 70 | 529 | Newtonsoft.Json.Schema .JsonSchemaGenerator.GenerateInternal (Type,Required,Boolean) |
WriteTokenInternal(BsonToken) | 69 | 383 | Newtonsoft.Json.Bson.BsonBinaryWriter .WriteTokenInternal(BsonToken) |
ParseNumber() | 68 | 535 | Newtonsoft.Json.JsonTextReader .ParseNumber() |
ReadValues() | 68 | 400 | Newtonsoft.Json.Tests.Bson .BsonReaderTests.ReadValues() |
CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) | 67 | 538 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) |
CreateObject(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) | 67 | 477 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObject(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) |
Operation(ExpressionType,Object,Object ,Object&) | 66 | 565 | Newtonsoft.Json.Linq.JValue.Operation (ExpressionType,Object,Object,Object&) |
WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) | 66 | 370 | Newtonsoft.Json.Utilities .JavaScriptUtils .WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) |
WriteSchema(JsonSchema) | 65 | 491 | Newtonsoft.Json.Schema.JsonSchemaWriter .WriteSchema(JsonSchema) |
ReadContentFrom(JsonReader) | 64 | 229 | Newtonsoft.Json.Linq.JContainer .ReadContentFrom(JsonReader) |
ProcessSchemaProperties(JObject) | 63 | 407 | Newtonsoft.Json.Schema.JsonSchemaBuilder .ProcessSchemaProperties(JObject) |
Compare(JTokenType,Object,Object) | 63 | 403 | Newtonsoft.Json.Linq.JValue.Compare (JTokenType,Object,Object) |
ParseValue() | 62 | 364 | Newtonsoft.Json.JsonTextReader .ParseValue() |
TraceJsonReaderTest() | 62 | 329 | Newtonsoft.Json.Tests.Serialization .TraceWriterTests.TraceJsonReaderTest() |
.ctor(Type) | 61 | 495 | Newtonsoft.Json.Serialization .JsonArrayContract..ctor(Type) |
ApplySerializerSettings(JsonSerializer ,JsonSerializerSettings) | 61 | 380 | Newtonsoft.Json.JsonSerializer .ApplySerializerSettings(JsonSerializer ,JsonSerializerSettings) |
ReadLineInfo() | 61 | 331 | Newtonsoft.Json.Tests.Linq .JTokenReaderTest.ReadLineInfo() |
ExtendedComplex() | 61 | 327 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ExtendedComplex() |
ReadType(BsonType) | 61 | 226 | Newtonsoft.Json.Bson.BsonReader.ReadType (BsonType) |
ReadFloatingPointNumber() | 60 | 330 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadFloatingPointNumber() |
TraceJsonWriterTest() | 60 | 298 | Newtonsoft.Json.Tests.Serialization .TraceWriterTests.TraceJsonWriterTest() |
WriteEscapedJavaScriptStringOld (TextWriter,String,Char,Boolean) | 59 | 260 | Newtonsoft.Json.Tests.JsonTextWriterTest .WriteEscapedJavaScriptStringOld (TextWriter,String,Char,Boolean) |
ResolveReferences(JsonSchema) | 58 | 408 | Newtonsoft.Json.Schema.JsonSchemaBuilder .ResolveReferences(JsonSchema) |
JsonSerializerProxyProperties() | 57 | 293 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest .JsonSerializerProxyProperties() |
JsonSerializerProperties() | 57 | 291 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest .JsonSerializerProperties() |
JsonSerializerSettingsProperties() | 57 | 291 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest .JsonSerializerSettingsProperties() |
SetPropertySettingsFromAttributes (JsonProperty,Object,String,Type ,MemberSerialization,Boolean&) | 56 | 403 | Newtonsoft.Json.Serialization .DefaultContractResolver .SetPropertySettingsFromAttributes (JsonProperty,Object,String,Type ,MemberSerialization,Boolean&) |
ParsePath(List<PathFilter>,Int32,Boolean ) | 54 | 387 | Newtonsoft.Json.Linq.JsonPath.JPath .ParsePath(List<PathFilter>,Int32 ,Boolean) |
PopulateMultidimensionalArray(IList ,JsonReader,JsonArrayContract ,JsonProperty,String) | 54 | 319 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateMultidimensionalArray(IList ,JsonReader,JsonArrayContract ,JsonProperty,String) |
ImplicitCastingTo() | 53 | 579 | Newtonsoft.Json.Tests.Linq.JTokenTests .ImplicitCastingTo() |
WriteToken(JsonReader,Int32,Boolean ,Boolean) | 52 | 266 | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Int32,Boolean,Boolean) |
ReadingIndented() | 51 | 265 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadingIndented() |
CalculateSize(BsonToken) | 51 | 255 | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSize(BsonToken) |
DateParseHandling() | 51 | 254 | Newtonsoft.Json.Tests.JsonTextReaderTest .DateParseHandling() |
ReadMetadataPropertiesToken(JTokenReader ,Type&,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 50 | 301 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataPropertiesToken (JTokenReader,Type&,JsonContract& ,JsonProperty,JsonContainerContract ,JsonProperty,Object,Object&,String&) |
JValueConvert() | 50 | 256 | Newtonsoft.Json.Tests.Linq.DynamicTests .JValueConvert() |
PopulateDictionary(IDictionary ,JsonReader,JsonDictionaryContract ,JsonProperty,String) | 49 | 317 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateDictionary(IDictionary ,JsonReader,JsonDictionaryContract ,JsonProperty,String) |
ValidateTypes() | 49 | 253 | Newtonsoft.Json.Tests .JsonValidatingReaderTests.ValidateTypes () |
Serialize() | 49 | 242 | Newtonsoft.Json.Tests.Converters .DataTableConverterTests.Serialize() |
SerializeInternal(JsonWriter,Object,Type ) | 48 | 405 | Newtonsoft.Json.JsonSerializer .SerializeInternal(JsonWriter,Object ,Type) |
YahooFinance() | 47 | 345 | Newtonsoft.Json.Tests.Linq .JTokenReaderTest.YahooFinance() |
ParseExpression() | 46 | 326 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseExpression() |
ValidateUnrestrictedArray() | 46 | 250 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ValidateUnrestrictedArray() |
TryParseDateIso(String,DateParseHandling ,DateTimeZoneHandling,Object&) | 45 | 281 | Newtonsoft.Json.Utilities.DateTimeUtils .TryParseDateIso(String ,DateParseHandling,DateTimeZoneHandling ,Object&) |
ReadAsBytesInternal() | 44 | 247 | Newtonsoft.Json.JsonReader .ReadAsBytesInternal() |
GenerateCreateMethodCallIL(MethodBase ,ILGenerator,Int32) | 44 | 231 | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateMethodCallIL(MethodBase ,ILGenerator,Int32) |
PopulateObject(Object,JsonReader ,JsonObjectContract,JsonProperty,String) | 43 | 321 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateObject(Object,JsonReader ,JsonObjectContract,JsonProperty,String) |
ParseComment() | 43 | 283 | Newtonsoft.Json.JsonTextReader .ParseComment() |
SpecifiedTest() | 43 | 259 | Newtonsoft.Json.Tests.Serialization .TraceWriterTests.SpecifiedTest() |
Path() | 43 | 188 | Newtonsoft.Json.Tests.JsonTextWriterTest .Path() |
FailedCasting() | 42 | 464 | Newtonsoft.Json.Tests.Linq.JTokenTests .FailedCasting() |
ReadNewLines() | 42 | 445 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadNewLines() |
GetCallbackMethodsForType(Type,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationErrorCallback>&) | 42 | 240 | Newtonsoft.Json.Serialization .DefaultContractResolver .GetCallbackMethodsForType(Type,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationErrorCallback>&) |
ToObject(Type) | 42 | 219 | Newtonsoft.Json.Linq.JToken.ToObject (Type) |
get_CurrentMemberSchemas() | 41 | 345 | Newtonsoft.Json.JsonValidatingReader .get_CurrentMemberSchemas() |
CreateDynamic(JsonReader ,JsonDynamicContract,JsonProperty,String ) | 41 | 296 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateDynamic(JsonReader ,JsonDynamicContract,JsonProperty,String ) |
BuildJObjectComparedToXml() | 41 | 214 | Newtonsoft.Json.Tests.PerformanceTests .BuildJObjectComparedToXml() |
ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 40 | 294 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) |
Create(Type,MethodBase,String[]) | 40 | 275 | Newtonsoft.Json.Utilities .ReflectionObject.Create(Type,MethodBase ,String[]) |
ExtendsDisallowAdditionProperties() | 40 | 220 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ExtendsDisallowAdditionProperties() |
ScientificNotation() | 40 | 213 | Newtonsoft.Json.Tests.JsonTextReaderTest .ScientificNotation() |
ObjectToString() | 40 | 179 | Newtonsoft.Json.Tests.JsonConvertTest .ObjectToString() |
ToObject() | 39 | 386 | Newtonsoft.Json.Tests.Linq.JTokenTests .ToObject() |
WriteTo(JsonWriter,JsonConverter[]) | 39 | 248 | Newtonsoft.Json.Linq.JValue.WriteTo (JsonWriter,JsonConverter[]) |
ParseConstructor() | 39 | 229 | Newtonsoft.Json.JsonTextReader .ParseConstructor() |
IntLength(UInt64) | 39 | 226 | Newtonsoft.Json.Utilities.MathUtils .IntLength(UInt64) |
ChangeValue() | 39 | 217 | Newtonsoft.Json.Tests.Linq.JValueTests .ChangeValue() |
ReadingFromSlowStream() | 39 | 215 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadingFromSlowStream() |
NewDateTimeParse() | 39 | 166 | Newtonsoft.Json.Tests.Utilities .DateTimeUtilsTests.NewDateTimeParse() |
PopulateList(IList,JsonReader ,JsonArrayContract,JsonProperty,String) | 38 | 256 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateList(IList,JsonReader ,JsonArrayContract,JsonProperty,String) |
WriteSerializedStore() | 38 | 241 | Newtonsoft.Json.Tests.Bson .BsonWriterTests.WriteSerializedStore() |
ReadAttributeElements(JsonReader ,XmlNamespaceManager) | 38 | 225 | Newtonsoft.Json.Converters .XmlNodeConverter.ReadAttributeElements (JsonReader,XmlNamespaceManager) |
ReadNormal() | 38 | 182 | Newtonsoft.Json.Bson.BsonReader .ReadNormal() |
ResolvePropertyAndCreatorValues (JsonObjectContract,JsonProperty ,JsonReader,Type,IDictionary<String ,Object>&) | 37 | 281 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ResolvePropertyAndCreatorValues (JsonObjectContract,JsonProperty ,JsonReader,Type,IDictionary<String ,Object>&) |
NullableValueFormatting() | 37 | 212 | Newtonsoft.Json.Tests.JsonTextWriterTest .NullableValueFormatting() |
ReadContentDelimitedByComments() | 37 | 207 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadContentDelimitedByComments() |
ReadNestedArray() | 37 | 201 | Newtonsoft.Json.Tests.Bson .BsonReaderTests.ReadNestedArray() |
PropertyChanging() | 37 | 191 | Newtonsoft.Json.Tests.Linq.JObjectTests .PropertyChanging() |
EvaluateArraySlice() | 36 | 265 | Newtonsoft.Json.Tests.Linq.JsonPath .JPathExecuteTests.EvaluateArraySlice() |
SerializeDynamic(JsonWriter ,IDynamicMetaObjectProvider ,JsonDynamicContract,JsonProperty ,JsonContainerContract,JsonProperty) | 36 | 251 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeDynamic(JsonWriter ,IDynamicMetaObjectProvider ,JsonDynamicContract,JsonProperty ,JsonContainerContract,JsonProperty) |
SerializeObject(JsonWriter,Object ,JsonObjectContract,JsonProperty ,JsonContainerContract,JsonProperty) | 36 | 244 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeObject(JsonWriter,Object ,JsonObjectContract,JsonProperty ,JsonContainerContract,JsonProperty) |
ReadCodeWScope() | 36 | 187 | Newtonsoft.Json.Tests.Bson .BsonReaderTests.ReadCodeWScope() |
SetToken(JToken) | 36 | 153 | Newtonsoft.Json.Linq.JTokenReader .SetToken(JToken) |
Encode(Byte[],Int32,Int32) | 35 | 245 | Newtonsoft.Json.Utilities.Base64Encoder .Encode(Byte[],Int32,Int32) |
WriteReadWrite() | 35 | 173 | Newtonsoft.Json.Tests.JsonTextReaderTest .WriteReadWrite() |
SerializeNodeTypes() | 35 | 149 | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest.SerializeNodeTypes () |
AutoCompleteClose(JsonContainerType) | 34 | 174 | Newtonsoft.Json.JsonWriter .AutoCompleteClose(JsonContainerType) |
Statistics
Stat | # lines of code (LOC) | # IL instructions |
---|---|---|
Sum: | 6 072 | 51 871 |
Average: | 51.9 | 443.34 |
Minimum: | 31 | 141 |
Maximum: | 238 | 9 380 |
Standard deviation: | 24.97 | 1 031 |
Variance: | 623.6 | 1 063 709 |
![]() | Rule warning: Methods too complex |
warnif count > 0 from m in JustMyCode.Methods where
m.CyclomaticComplexity > 20 ||
m.ILCyclomaticComplexity > 40 ||
m.ILNestingDepth > 5
orderby m.CyclomaticComplexity descending,
m.ILCyclomaticComplexity descending,
m.ILNestingDepth descending
select new { m, m.CyclomaticComplexity,
m.ILCyclomaticComplexity,
m.ILNestingDepth }
// Methods where CyclomaticComplexity > 20
// or ILCyclomaticComplexity > 40
// or ILNestingDepth > 4
// are hard to understand and maintain
// and should be split in smaller methods.
// See the definition of the complexity metrics here:
// http://www.ndepend.com/Metrics.aspx#CC
// http://www.ndepend.com/Metrics.aspx#ILCC
// http://www.NDepend.com/Metrics.aspx#ILNestingDepthView Code Query or Rule Body
76 methods matched
methods | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | Full Name |
---|---|---|---|---|
WriteValue(JsonWriter,PrimitiveTypeCode ,Object) | 90 | 84 | 2 | Newtonsoft.Json.JsonWriter.WriteValue (JsonWriter,PrimitiveTypeCode,Object) |
Operation(ExpressionType,Object,Object ,Object&) | 75 | 64 | 13 | Newtonsoft.Json.Linq.JValue.Operation (ExpressionType,Object,Object,Object&) |
Compare(JTokenType,Object,Object) | 51 | 42 | 4 | Newtonsoft.Json.Linq.JValue.Compare (JTokenType,Object,Object) |
TryConvertInternal(Object,CultureInfo ,Type,Object&) | 47 | 40 | 3 | Newtonsoft.Json.Utilities.ConvertUtils .TryConvertInternal(Object,CultureInfo ,Type,Object&) |
ToObject(Type) | 45 | 42 | 2 | Newtonsoft.Json.Linq.JToken.ToObject (Type) |
SetPropertySettingsFromAttributes (JsonProperty,Object,String,Type ,MemberSerialization,Boolean&) | 44 | 53 | 2 | Newtonsoft.Json.Serialization .DefaultContractResolver .SetPropertySettingsFromAttributes (JsonProperty,Object,String,Type ,MemberSerialization,Boolean&) |
.ctor(Type) | 42 | 29 | 2 | Newtonsoft.Json.Serialization .JsonArrayContract..ctor(Type) |
ReadNumberIntoBuffer() | 39 | 15 | 6 | Newtonsoft.Json.JsonTextReader .ReadNumberIntoBuffer() |
GenerateInternal(Type,Required,Boolean) | 38 | 50 | 4 | Newtonsoft.Json.Schema .JsonSchemaGenerator.GenerateInternal (Type,Required,Boolean) |
SerializeNode(JsonWriter,IXmlNode ,XmlNamespaceManager,Boolean) | 38 | 48 | 4 | Newtonsoft.Json.Converters .XmlNodeConverter.SerializeNode (JsonWriter,IXmlNode,XmlNamespaceManager ,Boolean) |
WriteToken(JsonReader,Int32,Boolean ,Boolean) | 38 | 42 | 3 | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Int32,Boolean,Boolean) |
WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) | 37 | 51 | 6 | Newtonsoft.Json.Utilities .JavaScriptUtils .WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) |
ReadStringIntoBuffer(Char) | 36 | 44 | 12 | Newtonsoft.Json.JsonTextReader .ReadStringIntoBuffer(Char) |
CreateObject(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) | 35 | 37 | 4 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObject(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) |
GetJsonSchemaType(Type,Required) | 35 | 15 | 2 | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetJsonSchemaType (Type,Required) |
ParseValue() | 34 | 43 | 12 | Newtonsoft.Json.JsonTextReader .ParseValue() |
ParseNumber() | 33 | 41 | 4 | Newtonsoft.Json.JsonTextReader .ParseNumber() |
WriteTo(JsonWriter,JsonConverter[]) | 33 | 36 | 2 | Newtonsoft.Json.Linq.JValue.WriteTo (JsonWriter,JsonConverter[]) |
ParsePath(List<PathFilter>,Int32,Boolean ) | 32 | 40 | 7 | Newtonsoft.Json.Linq.JsonPath.JPath .ParsePath(List<PathFilter>,Int32 ,Boolean) |
GetValueType(Nullable<JTokenType>,Object ) | 32 | 20 | 7 | Newtonsoft.Json.Linq.JValue.GetValueType (Nullable<JTokenType>,Object) |
ProcessSchemaProperties(JObject) | 31 | 36 | 4 | Newtonsoft.Json.Schema.JsonSchemaBuilder .ProcessSchemaProperties(JObject) |
WriteEscapedJavaScriptStringOld (TextWriter,String,Char,Boolean) | 31 | 35 | 8 | Newtonsoft.Json.Tests.JsonTextWriterTest .WriteEscapedJavaScriptStringOld (TextWriter,String,Char,Boolean) |
.ctor(Type) | 31 | 14 | 2 | Newtonsoft.Json.Serialization .JsonDictionaryContract..ctor(Type) |
PopulateDictionary(IDictionary ,JsonReader,JsonDictionaryContract ,JsonProperty,String) | 30 | 37 | 5 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateDictionary(IDictionary ,JsonReader,JsonDictionaryContract ,JsonProperty,String) |
ApplySerializerSettings(JsonSerializer ,JsonSerializerSettings) | 30 | 31 | 2 | Newtonsoft.Json.JsonSerializer .ApplySerializerSettings(JsonSerializer ,JsonSerializerSettings) |
ToString(Object) | 30 | 25 | 1 | Newtonsoft.Json.JsonConvert.ToString (Object) |
ValidateCurrentToken() | 29 | 52 | 3 | Newtonsoft.Json.JsonValidatingReader .ValidateCurrentToken() |
get_CurrentMemberSchemas() | 28 | 44 | 5 | Newtonsoft.Json.JsonValidatingReader .get_CurrentMemberSchemas() |
SerializeValue(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) | 28 | 25 | 5 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeValue(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) |
CreateValueInternal(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) | 28 | 20 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateValueInternal(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) |
ReadContentFrom(JsonReader) | 27 | 26 | 3 | Newtonsoft.Json.Linq.JContainer .ReadContentFrom(JsonReader) |
SerializeInternal(JsonWriter,Object,Type ) | 26 | 44 | 2 | Newtonsoft.Json.JsonSerializer .SerializeInternal(JsonWriter,Object ,Type) |
ResolveReferences(JsonSchema) | 26 | 37 | 7 | Newtonsoft.Json.Schema.JsonSchemaBuilder .ResolveReferences(JsonSchema) |
ParseArrayIndexer(Char) | 26 | 34 | 5 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseArrayIndexer(Char) |
ReadType(BsonType) | 25 | 27 | 2 | Newtonsoft.Json.Bson.BsonReader.ReadType (BsonType) |
ResolveCallbackMethods(JsonContract,Type ) | 25 | 15 | 3 | Newtonsoft.Json.Serialization .DefaultContractResolver .ResolveCallbackMethods(JsonContract ,Type) |
GetDefaultValue(Type) | 25 | 15 | 2 | Newtonsoft.Json.Utilities .ReflectionUtils.GetDefaultValue(Type) |
CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) | 24 | 51 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) |
CreateDynamic(JsonReader ,JsonDynamicContract,JsonProperty,String ) | 23 | 33 | 4 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateDynamic(JsonReader ,JsonDynamicContract,JsonProperty,String ) |
PopulateObject(Object,JsonReader ,JsonObjectContract,JsonProperty,String) | 23 | 29 | 7 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateObject(Object,JsonReader ,JsonObjectContract,JsonProperty,String) |
IsMatch(JToken) | 22 | 33 | 9 | Newtonsoft.Json.Linq.JsonPath .BooleanQueryExpression.IsMatch(JToken) |
ResolvePropertyAndCreatorValues (JsonObjectContract,JsonProperty ,JsonReader,Type,IDictionary<String ,Object>&) | 22 | 30 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ResolvePropertyAndCreatorValues (JsonObjectContract,JsonProperty ,JsonReader,Type,IDictionary<String ,Object>&) |
ParseExpression() | 22 | 30 | 4 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseExpression() |
ReadNormal() | 22 | 24 | 3 | Newtonsoft.Json.Bson.BsonReader .ReadNormal() |
CreateContract(Type) | 22 | 17 | 1 | Newtonsoft.Json.Serialization .DefaultContractResolver.CreateContract (Type) |
PopulateMultidimensionalArray(IList ,JsonReader,JsonArrayContract ,JsonProperty,String) | 21 | 34 | 7 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateMultidimensionalArray(IList ,JsonReader,JsonArrayContract ,JsonProperty,String) |
GetSerializableMembers(Type) | 21 | 27 | 4 | Newtonsoft.Json.Serialization .DefaultContractResolver .GetSerializableMembers(Type) |
WriteTokenInternal(BsonToken) | 21 | 27 | 3 | Newtonsoft.Json.Bson.BsonBinaryWriter .WriteTokenInternal(BsonToken) |
ReadAttributeElements(JsonReader ,XmlNamespaceManager) | 21 | 22 | 6 | Newtonsoft.Json.Converters .XmlNodeConverter.ReadAttributeElements (JsonReader,XmlNamespaceManager) |
MoveNext() | 19 | 45 | 5 | Newtonsoft.Json.Linq.JsonPath .ArraySliceFilter+<ExecuteFilter>d__0 .MoveNext() |
DeserializeNode(JsonReader,IXmlDocument ,XmlNamespaceManager,IXmlNode) | 18 | 28 | 6 | Newtonsoft.Json.Converters .XmlNodeConverter.DeserializeNode (JsonReader,IXmlDocument ,XmlNamespaceManager,IXmlNode) |
ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 18 | 26 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) |
EndObject(Object,JsonReader ,JsonObjectContract,Int32,Dictionary <JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) | 18 | 26 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.EndObject (Object,JsonReader,JsonObjectContract ,Int32,Dictionary<JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) |
ParseComment() | 18 | 23 | 7 | Newtonsoft.Json.JsonTextReader .ParseComment() |
PopulateList(IList,JsonReader ,JsonArrayContract,JsonProperty,String) | 17 | 28 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .PopulateList(IList,JsonReader ,JsonArrayContract,JsonProperty,String) |
TryBinaryOperation(JValue ,BinaryOperationBinder,Object,Object&) | 17 | 16 | 8 | Newtonsoft.Json.Linq .JValue+JValueDynamicProxy .TryBinaryOperation(JValue ,BinaryOperationBinder,Object,Object&) |
JValueAddition() | 16 | 328 | 1 | Newtonsoft.Json.Tests.Linq.DynamicTests .JValueAddition() |
DeserializeJsonNetManual(String) | 16 | 27 | 7 | Newtonsoft.Json.Tests.PerformanceTests .DeserializeJsonNetManual(String) |
ParsePostValue() | 16 | 23 | 9 | Newtonsoft.Json.JsonTextReader .ParsePostValue() |
IsSeparator(Char) | 16 | 17 | 7 | Newtonsoft.Json.JsonTextReader .IsSeparator(Char) |
ParseTime(Int32&) | 16 | 16 | 7 | Newtonsoft.Json.Utilities.DateTimeParser .ParseTime(Int32&) |
EnsureType(JsonReader,Object,CultureInfo ,JsonContract,Type) | 15 | 12 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.EnsureType (JsonReader,Object,CultureInfo ,JsonContract,Type) |
WriteToken(IList<JsonSchemaModel>) | 14 | 26 | 7 | Newtonsoft.Json.JsonValidatingReader .WriteToken(IList<JsonSchemaModel>) |
AutoComplete(JsonToken) | 14 | 13 | 6 | Newtonsoft.Json.JsonWriter.AutoComplete (JsonToken) |
JValueEquals() | 13 | 223 | 1 | Newtonsoft.Json.Tests.Linq.DynamicTests .JValueEquals() |
ParseObject() | 13 | 18 | 6 | Newtonsoft.Json.JsonTextReader .ParseObject() |
Parse4Digit(Int32,Int32&) | 10 | 6 | 8 | Newtonsoft.Json.Utilities.DateTimeParser .Parse4Digit(Int32,Int32&) |
ParseDate(Int32) | 10 | 3 | 9 | Newtonsoft.Json.Utilities.DateTimeParser .ParseDate(Int32) |
FailedCasting() | 9 | 43 | 1 | Newtonsoft.Json.Tests.Linq.JTokenTests .FailedCasting() |
BuildJObjectComparedToXml() | 9 | 15 | 8 | Newtonsoft.Json.Tests.PerformanceTests .BuildJObjectComparedToXml() |
ProcessValue() | 9 | 13 | 6 | Newtonsoft.Json.JsonValidatingReader .ProcessValue() |
CreateInstruction(JsonReader ,IXmlDocument,IXmlNode,String) | 8 | 12 | 6 | Newtonsoft.Json.Converters .XmlNodeConverter.CreateInstruction (JsonReader,IXmlDocument,IXmlNode,String ) |
CreateDocumentType(JsonReader ,IXmlDocument,IXmlNode) | 8 | 11 | 6 | Newtonsoft.Json.Converters .XmlNodeConverter.CreateDocumentType (JsonReader,IXmlDocument,IXmlNode) |
CreateAddress(JsonTextReader) | 6 | 10 | 6 | Newtonsoft.Json.Tests.PerformanceTests .CreateAddress(JsonTextReader) |
CheckPropertyName(JsonReader,String) | 6 | 5 | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CheckPropertyName(JsonReader,String) |
DeserializeExpandoObject() | 1 | 43 | 1 | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests .DeserializeExpandoObject() |
Statistics
Stat | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth |
---|---|---|---|
Sum: | 1 944 | 2 766 | 384 |
Average: | 25.58 | 36.39 | 5.05 |
Minimum: | 1 | 3 | 1 |
Maximum: | 90 | 328 | 13 |
Standard deviation: | 14.15 | 42.73 | 2.66 |
Variance: | 200.32 | 1 825 | 7.05 |
![]() | Rule warning: Methods potentially poorly commented |
warnif count > 0 from m in JustMyCode.Methods where
m.PercentageComment < 20 &&
m.NbLinesOfCode > 20
orderby m.PercentageComment ascending
select new { m, m.PercentageComment, m.NbLinesOfCode, m.NbLinesOfComment }
// Methods where %Comment < 20 and that have
// at least 20 lines of code might need to be more commented.
// See the definition of the Comments metric here
// http://www.ndepend.com/Metrics.aspx#PercentageComment
// http://www.ndepend.com/Metrics.aspx#NbLinesOfComment View Code Query or Rule Body
236 methods matched
methods | Percentage Comment | # lines of code (LOC) | # lines of comment | Full Name |
---|---|---|---|---|
ReadAsDateTimeOffsetInternal() | 0 | 28 | 0 | Newtonsoft.Json.JsonReader .ReadAsDateTimeOffsetInternal() |
ReadAsDecimalInternal() | 0 | 24 | 0 | Newtonsoft.Json.JsonReader .ReadAsDecimalInternal() |
ReadAsInt32Internal() | 0 | 24 | 0 | Newtonsoft.Json.JsonReader .ReadAsInt32Internal() |
ReadAsDateTimeInternal() | 0 | 27 | 0 | Newtonsoft.Json.JsonReader .ReadAsDateTimeInternal() |
SetToken(JsonToken,Object,Boolean) | 0 | 23 | 0 | Newtonsoft.Json.JsonReader.SetToken (JsonToken,Object,Boolean) |
SetWriteState(JsonToken,Object) | 0 | 24 | 0 | Newtonsoft.Json.JsonWriter.SetWriteState (JsonToken,Object) |
ToString(Object) | 0 | 26 | 0 | Newtonsoft.Json.JsonConvert.ToString (Object) |
SetupReader(JsonReader,CultureInfo& ,Nullable<DateTimeZoneHandling>& ,Nullable<DateParseHandling>&,Nullable <FloatParseHandling>&,Nullable<Int32>& ,String&) | 0 | 24 | 0 | Newtonsoft.Json.JsonSerializer .SetupReader(JsonReader,CultureInfo& ,Nullable<DateTimeZoneHandling>& ,Nullable<DateParseHandling>&,Nullable <FloatParseHandling>&,Nullable<Int32>& ,String&) |
ParseString(Char) | 0 | 25 | 0 | Newtonsoft.Json.JsonTextReader .ParseString(Char) |
ParseConstructor() | 0 | 39 | 0 | Newtonsoft.Json.JsonTextReader .ParseConstructor() |
get_CurrentMemberSchemas() | 0 | 41 | 0 | Newtonsoft.Json.JsonValidatingReader .get_CurrentMemberSchemas() |
WriteTokenInternal(BsonToken) | 0 | 69 | 0 | Newtonsoft.Json.Bson.BsonBinaryWriter .WriteTokenInternal(BsonToken) |
CalculateSize(BsonToken) | 0 | 51 | 0 | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSize(BsonToken) |
ReadReference() | 0 | 21 | 0 | Newtonsoft.Json.Bson.BsonReader .ReadReference() |
ReadNormal() | 0 | 38 | 0 | Newtonsoft.Json.Bson.BsonReader .ReadNormal() |
ReadType(BsonType) | 0 | 61 | 0 | Newtonsoft.Json.Bson.BsonReader.ReadType (BsonType) |
CreateRow(JsonReader,DataTable) | 0 | 32 | 0 | Newtonsoft.Json.Converters .DataTableConverter.CreateRow(JsonReader ,DataTable) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 0 | 22 | 0 | Newtonsoft.Json.Converters .IsoDateTimeConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 0 | 21 | 0 | Newtonsoft.Json.Converters .KeyValuePairConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
CreateDocumentType(JsonReader ,IXmlDocument,IXmlNode) | 0 | 21 | 0 | Newtonsoft.Json.Converters .XmlNodeConverter.CreateDocumentType (JsonReader,IXmlDocument,IXmlNode) |
Encode(Byte[],Int32,Int32) | 0 | 35 | 0 | Newtonsoft.Json.Utilities.Base64Encoder .Encode(Byte[],Int32,Int32) |
ToBigInteger(Object) | 0 | 21 | 0 | Newtonsoft.Json.Utilities.ConvertUtils .ToBigInteger(Object) |
ParseZone(Int32) | 0 | 21 | 0 | Newtonsoft.Json.Utilities.DateTimeParser .ParseZone(Int32) |
TryParseDateIso(String,DateParseHandling ,DateTimeZoneHandling,Object&) | 0 | 45 | 0 | Newtonsoft.Json.Utilities.DateTimeUtils .TryParseDateIso(String ,DateParseHandling,DateTimeZoneHandling ,Object&) |
TryParseDateMicrosoft(String ,DateParseHandling,DateTimeZoneHandling ,Object&) | 0 | 26 | 0 | Newtonsoft.Json.Utilities.DateTimeUtils .TryParseDateMicrosoft(String ,DateParseHandling,DateTimeZoneHandling ,Object&) |
WriteDateTimeString(Char[],Int32 ,DateTime,Nullable<TimeSpan> ,DateTimeKind,DateFormatHandling) | 0 | 24 | 0 | Newtonsoft.Json.Utilities.DateTimeUtils .WriteDateTimeString(Char[],Int32 ,DateTime,Nullable<TimeSpan> ,DateTimeKind,DateFormatHandling) |
WriteDefaultIsoDate(Char[],Int32 ,DateTime) | 0 | 23 | 0 | Newtonsoft.Json.Utilities.DateTimeUtils .WriteDefaultIsoDate(Char[],Int32 ,DateTime) |
Create(Type,MethodBase,String[]) | 0 | 40 | 0 | Newtonsoft.Json.Utilities .ReflectionObject.Create(Type,MethodBase ,String[]) |
BuildMethodCall(MethodBase,Type ,ParameterExpression,ParameterExpression ) | 0 | 26 | 0 | Newtonsoft.Json.Utilities .ExpressionReflectionDelegateFactory .BuildMethodCall(MethodBase,Type ,ParameterExpression,ParameterExpression ) |
EnsureInitialized(Assembly) | 0 | 24 | 0 | Newtonsoft.Json.Utilities.FSharpUtils .EnsureInitialized(Assembly) |
.cctor() | 0 | 23 | 0 | Newtonsoft.Json.Utilities .JavaScriptUtils..cctor() |
IntLength(UInt64) | 0 | 39 | 0 | Newtonsoft.Json.Utilities.MathUtils .IntLength(UInt64) |
ImplementsGenericDefinition(Type,Type ,Type&) | 0 | 21 | 0 | Newtonsoft.Json.Utilities .ReflectionUtils .ImplementsGenericDefinition(Type,Type ,Type&) |
ResolveReferences(JsonSchema) | 0 | 58 | 0 | Newtonsoft.Json.Schema.JsonSchemaBuilder .ResolveReferences(JsonSchema) |
ProcessSchemaProperties(JObject) | 0 | 63 | 0 | Newtonsoft.Json.Schema.JsonSchemaBuilder .ProcessSchemaProperties(JObject) |
AddSchema(JsonSchemaNode,JsonSchema) | 0 | 27 | 0 | Newtonsoft.Json.Schema .JsonSchemaModelBuilder.AddSchema (JsonSchemaNode,JsonSchema) |
BuildNodeModel(JsonSchemaNode) | 0 | 30 | 0 | Newtonsoft.Json.Schema .JsonSchemaModelBuilder.BuildNodeModel (JsonSchemaNode) |
WriteSchema(JsonSchema) | 0 | 65 | 0 | Newtonsoft.Json.Schema.JsonSchemaWriter .WriteSchema(JsonSchema) |
.ctor(Type) | 0 | 21 | 0 | Newtonsoft.Json.Serialization .JsonContract..ctor(Type) |
Populate(JsonReader,Object) | 0 | 24 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.Populate (JsonReader,Object) |
ReadMetadataPropertiesToken(JTokenReader ,Type&,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 0 | 50 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataPropertiesToken (JTokenReader,Type&,JsonContract& ,JsonProperty,JsonContainerContract ,JsonProperty,Object,Object&,String&) |
EndObject(Object,JsonReader ,JsonObjectContract,Int32,Dictionary <JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) | 0 | 24 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.EndObject (Object,JsonReader,JsonObjectContract ,Int32,Dictionary<JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) |
SerializeValue(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) | 0 | 28 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeValue(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) |
CheckForCircularReference(JsonWriter ,Object,JsonProperty,JsonContract ,JsonContainerContract,JsonProperty) | 0 | 23 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .CheckForCircularReference(JsonWriter ,Object,JsonProperty,JsonContract ,JsonContainerContract,JsonProperty) |
SerializeObject(JsonWriter,Object ,JsonObjectContract,JsonProperty ,JsonContainerContract,JsonProperty) | 0 | 36 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeObject(JsonWriter,Object ,JsonObjectContract,JsonProperty ,JsonContainerContract,JsonProperty) |
CalculatePropertyValues(JsonWriter ,Object,JsonContainerContract ,JsonProperty,JsonProperty,JsonContract& ,Object&) | 0 | 21 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .CalculatePropertyValues(JsonWriter ,Object,JsonContainerContract ,JsonProperty,JsonProperty,JsonContract& ,Object&) |
SerializeMultidimensionalArray (JsonWriter,Array,JsonArrayContract ,JsonProperty,Int32,Int32[]) | 0 | 25 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeMultidimensionalArray (JsonWriter,Array,JsonArrayContract ,JsonProperty,Int32,Int32[]) |
SerializeDictionary(JsonWriter ,IDictionary,JsonDictionaryContract ,JsonProperty,JsonContainerContract ,JsonProperty) | 0 | 32 | 0 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeDictionary(JsonWriter ,IDictionary,JsonDictionaryContract ,JsonProperty,JsonContainerContract ,JsonProperty) |
GetAttribute<T>(MemberInfo) | 0 | 21 | 0 | Newtonsoft.Json.Serialization .JsonTypeReflector.GetAttribute<T> (MemberInfo) |
get_Path() | 0 | 27 | 0 | Newtonsoft.Json.Linq.JToken.get_Path() |
ToObject(Type) | 0 | 42 | 0 | Newtonsoft.Json.Linq.JToken.ToObject (Type) |
ReadFrom(JsonReader) | 0 | 23 | 0 | Newtonsoft.Json.Linq.JToken.ReadFrom (JsonReader) |
SetItem(Int32,JToken) | 0 | 27 | 0 | Newtonsoft.Json.Linq.JContainer.SetItem (Int32,JToken) |
Compare(JTokenType,Object,Object) | 0 | 63 | 0 | Newtonsoft.Json.Linq.JValue.Compare (JTokenType,Object,Object) |
GetValueType(Nullable<JTokenType>,Object ) | 0 | 29 | 0 | Newtonsoft.Json.Linq.JValue.GetValueType (Nullable<JTokenType>,Object) |
WriteTo(JsonWriter,JsonConverter[]) | 0 | 39 | 0 | Newtonsoft.Json.Linq.JValue.WriteTo (JsonWriter,JsonConverter[]) |
SetToken(JToken) | 0 | 36 | 0 | Newtonsoft.Json.Linq.JTokenReader .SetToken(JToken) |
ParseArrayIndexer(Char) | 0 | 75 | 0 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseArrayIndexer(Char) |
ParseExpression() | 0 | 46 | 0 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseExpression() |
ParseValue() | 0 | 30 | 0 | Newtonsoft.Json.Linq.JsonPath.JPath .ParseValue() |
IsMatch(JToken) | 0 | 28 | 0 | Newtonsoft.Json.Linq.JsonPath .BooleanQueryExpression.IsMatch(JToken) |
MoveNext() | 0 | 23 | 0 | Newtonsoft.Json.Linq.JsonPath .ScanFilter+<ExecuteFilter>d__0.MoveNext () |
EscapeJavaScriptString() | 0 | 32 | 0 | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString() |
ObjectToString() | 0 | 40 | 0 | Newtonsoft.Json.Tests.JsonConvertTest .ObjectToString() |
WriteDateTime() | 0 | 117 | 0 | Newtonsoft.Json.Tests.JsonConvertTest .WriteDateTime() |
TestDateTime<T>(String,T) | 0 | 23 | 0 | Newtonsoft.Json.Tests.JsonConvertTest .TestDateTime<T>(String,T) |
Async() | 0 | 29 | 0 | Newtonsoft.Json.Tests.JsonConvertTest .Async() |
FloatParseHandling() | 0 | 23 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .FloatParseHandling() |
ReadingIndented() | 0 | 51 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadingIndented() |
Depth() | 0 | 95 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .Depth() |
NullCharReading() | 0 | 29 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .NullCharReading() |
ReadNewLines() | 0 | 42 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadNewLines() |
ParseIntegers() | 0 | 25 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseIntegers() |
ParseDoubles() | 0 | 27 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseDoubles() |
WriteReadWrite() | 0 | 35 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .WriteReadWrite() |
ReadFloatingPointNumber() | 0 | 60 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadFloatingPointNumber() |
SupportMultipleContent() | 0 | 29 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .SupportMultipleContent() |
ParseContentDelimitedByNonStandardWhites pace() | 0 | 21 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseContentDelimitedByNonStandardWhite space() |
ReadContentDelimitedByComments() | 0 | 37 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadContentDelimitedByComments() |
SingleLineComments() | 0 | 84 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .SingleLineComments() |
MaxDepthDoesNotRecursivelyError() | 0 | 27 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .MaxDepthDoesNotRecursivelyError() |
ReadingFromSlowStream() | 0 | 39 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadingFromSlowStream() |
DateParseHandling() | 0 | 51 | 0 | Newtonsoft.Json.Tests.JsonTextReaderTest .DateParseHandling() |
ValueFormatting() | 0 | 23 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .ValueFormatting() |
NullableValueFormatting() | 0 | 37 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .NullableValueFormatting() |
State() | 0 | 27 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .State() |
FloatingPointNonFiniteNumbers_Zero() | 0 | 23 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .FloatingPointNonFiniteNumbers_Zero() |
WriteFloatingPointNumber() | 0 | 22 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .WriteFloatingPointNumber() |
Indentation() | 0 | 21 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .Indentation() |
Path() | 0 | 43 | 0 | Newtonsoft.Json.Tests.JsonTextWriterTest .Path() |
ValidateTypes() | 0 | 49 | 0 | Newtonsoft.Json.Tests .JsonValidatingReaderTests.ValidateTypes () |
ValidateUnrestrictedArray() | 0 | 46 | 0 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ValidateUnrestrictedArray() |
DisableAdditionalProperties() | 0 | 32 | 0 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .DisableAdditionalProperties() |
ExtendsDisallowAdditionProperties() | 0 | 40 | 0 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ExtendsDisallowAdditionProperties() |
PatternPropertiesNoAdditionalProperties( ) | 0 | 32 | 0 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .PatternPropertiesNoAdditionalProperties () |
ExtendedComplex() | 0 | 61 | 0 | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ExtendedComplex() |
BuildJObjectComparedToXml() | 0 | 41 | 0 | Newtonsoft.Json.Tests.PerformanceTests .BuildJObjectComparedToXml() |
DeserializeJsonNetManual(String) | 0 | 32 | 0 | Newtonsoft.Json.Tests.PerformanceTests .DeserializeJsonNetManual(String) |
ReadGuid_Text() | 0 | 21 | 0 | Newtonsoft.Json.Tests.Bson .BsonReaderTests.ReadGuid_Text() |
ReadGuid_Bytes() | 0 | 22 | 0 | Newtonsoft.Json.Tests.Bson .BsonReaderTests.ReadGuid_Bytes() |
Statistics
Stat | Percentage Comment | # lines of code (LOC) | # lines of comment |
---|---|---|---|
Sum: | 519 | 9 002 | 241 |
Average: | 2.2 | 38.14 | 1.02 |
Minimum: | 0 | 21 | 0 |
Maximum: | 18 | 238 | 12 |
Standard deviation: | 4.14 | 22.32 | 1.98 |
Variance: | 17.13 | 498.36 | 3.92 |
![]() | Rule warning: Methods with too many parameters |
warnif count > 0 from m in JustMyCode.Methods where
m.NbParameters > 5
orderby m.NbParameters descending
select new { m, m.NbParameters }
// Methods where NbParameters > 5 might be painful to call
// and might degrade performance. You should prefer using
// additional properties/fields to the declaring type to
// handle numerous states. Another alternative is to provide
// a class or structure dedicated to handle arguments passing
// (for example see the class System.Diagnostics.ProcessStartInfo
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here
// http://www.ndepend.com/Metrics.aspx#NbParametersView Code Query or Rule Body
33 methods matched
methods | # Parameters | Full Name |
---|---|---|
CalculatePropertyDetails(JsonProperty ,JsonConverter&,JsonContainerContract ,JsonProperty,JsonReader,Object,Boolean& ,Object&,JsonContract&,Boolean&) | 10 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CalculatePropertyDetails(JsonProperty ,JsonConverter&,JsonContainerContract ,JsonProperty,JsonReader,Object,Boolean& ,Object&,JsonContract&,Boolean&) |
ReadMetadataPropertiesToken(JTokenReader ,Type&,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 9 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataPropertiesToken (JTokenReader,Type&,JsonContract& ,JsonProperty,JsonContainerContract ,JsonProperty,Object,Object&,String&) |
ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) | 9 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadMetadataProperties(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,Object,Object&,String&) |
SetupReader(JsonReader,CultureInfo& ,Nullable<DateTimeZoneHandling>& ,Nullable<DateParseHandling>&,Nullable <FloatParseHandling>&,Nullable<Int32>& ,String&) | 7 | Newtonsoft.Json.JsonSerializer .SetupReader(JsonReader,CultureInfo& ,Nullable<DateTimeZoneHandling>& ,Nullable<DateParseHandling>&,Nullable <FloatParseHandling>&,Nullable<Int32>& ,String&) |
ResetReader(JsonReader,CultureInfo ,Nullable<DateTimeZoneHandling>,Nullable <DateParseHandling>,Nullable <FloatParseHandling>,Nullable<Int32> ,String) | 7 | Newtonsoft.Json.JsonSerializer .ResetReader(JsonReader,CultureInfo ,Nullable<DateTimeZoneHandling>,Nullable <DateParseHandling>,Nullable <FloatParseHandling>,Nullable<Int32> ,String) |
WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) | 7 | Newtonsoft.Json.Utilities .JavaScriptUtils .WriteEscapedJavaScriptString(TextWriter ,String,Char,Boolean,Boolean[] ,StringEscapeHandling,Char[]&) |
CreateValueInternal(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) | 7 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateValueInternal(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) |
CreateObject(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) | 7 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObject(JsonReader,Type ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty ,Object) |
ResolveTypeName(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,String) | 7 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ResolveTypeName(JsonReader,Type& ,JsonContract&,JsonProperty ,JsonContainerContract,JsonProperty ,String) |
CalculatePropertyValues(JsonWriter ,Object,JsonContainerContract ,JsonProperty,JsonProperty,JsonContract& ,Object&) | 7 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .CalculatePropertyValues(JsonWriter ,Object,JsonContainerContract ,JsonProperty,JsonProperty,JsonContract& ,Object&) |
.ctor(String,Int32,EventType,String ,String,String,String) | 7 | Newtonsoft.Json.Tests.TestObjects.Event. .ctor(String,Int32,EventType,String ,String,String,String) |
TryParseDateTime(String ,DateParseHandling,DateTimeZoneHandling ,String,CultureInfo,Object&) | 6 | Newtonsoft.Json.Utilities.DateTimeUtils .TryParseDateTime(String ,DateParseHandling,DateTimeZoneHandling ,String,CultureInfo,Object&) |
TryParseDateExact(String ,DateParseHandling,DateTimeZoneHandling ,String,CultureInfo,Object&) | 6 | Newtonsoft.Json.Utilities.DateTimeUtils .TryParseDateExact(String ,DateParseHandling,DateTimeZoneHandling ,String,CultureInfo,Object&) |
WriteDateTimeString(Char[],Int32 ,DateTime,Nullable<TimeSpan> ,DateTimeKind,DateFormatHandling) | 6 | Newtonsoft.Json.Utilities.DateTimeUtils .WriteDateTimeString(Char[],Int32 ,DateTime,Nullable<TimeSpan> ,DateTimeKind,DateFormatHandling) |
GetCallbackMethodsForType(Type,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationErrorCallback>&) | 6 | Newtonsoft.Json.Serialization .DefaultContractResolver .GetCallbackMethodsForType(Type,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationCallback>&,List <SerializationErrorCallback>&) |
SetPropertySettingsFromAttributes (JsonProperty,Object,String,Type ,MemberSerialization,Boolean&) | 6 | Newtonsoft.Json.Serialization .DefaultContractResolver .SetPropertySettingsFromAttributes (JsonProperty,Object,String,Type ,MemberSerialization,Boolean&) |
IsErrorHandled(Object,JsonContract ,Object,IJsonLineInfo,String,Exception) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalBase .IsErrorHandled(Object,JsonContract ,Object,IJsonLineInfo,String,Exception) |
CreateList(JsonReader,Type,JsonContract ,JsonProperty,Object,String) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.CreateList (JsonReader,Type,JsonContract ,JsonProperty,Object,String) |
SetPropertyValue(JsonProperty ,JsonConverter,JsonContainerContract ,JsonProperty,JsonReader,Object) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .SetPropertyValue(JsonProperty ,JsonConverter,JsonContainerContract ,JsonProperty,JsonReader,Object) |
CreateNewObject(JsonReader ,JsonObjectContract,JsonProperty ,JsonProperty,String,Boolean&) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateNewObject(JsonReader ,JsonObjectContract,JsonProperty ,JsonProperty,String,Boolean&) |
SerializePrimitive(JsonWriter,Object ,JsonPrimitiveContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializePrimitive(JsonWriter,Object ,JsonPrimitiveContract,JsonProperty ,JsonContainerContract,JsonProperty) |
SerializeValue(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeValue(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) |
CheckForCircularReference(JsonWriter ,Object,JsonProperty,JsonContract ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .CheckForCircularReference(JsonWriter ,Object,JsonProperty,JsonContract ,JsonContainerContract,JsonProperty) |
SerializeObject(JsonWriter,Object ,JsonObjectContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeObject(JsonWriter,Object ,JsonObjectContract,JsonProperty ,JsonContainerContract,JsonProperty) |
WriteObjectStart(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .WriteObjectStart(JsonWriter,Object ,JsonContract,JsonProperty ,JsonContainerContract,JsonProperty) |
SerializeConvertable(JsonWriter ,JsonConverter,Object,JsonContract ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeConvertable(JsonWriter ,JsonConverter,Object,JsonContract ,JsonContainerContract,JsonProperty) |
SerializeList(JsonWriter,IEnumerable ,JsonArrayContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeList(JsonWriter,IEnumerable ,JsonArrayContract,JsonProperty ,JsonContainerContract,JsonProperty) |
SerializeMultidimensionalArray (JsonWriter,Array,JsonArrayContract ,JsonProperty,JsonContainerContract ,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeMultidimensionalArray (JsonWriter,Array,JsonArrayContract ,JsonProperty,JsonContainerContract ,JsonProperty) |
SerializeMultidimensionalArray (JsonWriter,Array,JsonArrayContract ,JsonProperty,Int32,Int32[]) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeMultidimensionalArray (JsonWriter,Array,JsonArrayContract ,JsonProperty,Int32,Int32[]) |
WriteStartArray(JsonWriter,Object ,JsonArrayContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .WriteStartArray(JsonWriter,Object ,JsonArrayContract,JsonProperty ,JsonContainerContract,JsonProperty) |
SerializeISerializable(JsonWriter ,ISerializable,JsonISerializableContract ,JsonProperty,JsonContainerContract ,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeISerializable(JsonWriter ,ISerializable,JsonISerializableContract ,JsonProperty,JsonContainerContract ,JsonProperty) |
SerializeDynamic(JsonWriter ,IDynamicMetaObjectProvider ,JsonDynamicContract,JsonProperty ,JsonContainerContract,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeDynamic(JsonWriter ,IDynamicMetaObjectProvider ,JsonDynamicContract,JsonProperty ,JsonContainerContract,JsonProperty) |
SerializeDictionary(JsonWriter ,IDictionary,JsonDictionaryContract ,JsonProperty,JsonContainerContract ,JsonProperty) | 6 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .SerializeDictionary(JsonWriter ,IDictionary,JsonDictionaryContract ,JsonProperty,JsonContainerContract ,JsonProperty) |
Statistics
Stat | # Parameters |
---|---|
Sum: | 216 |
Average: | 6.55 |
Minimum: | 6 |
Maximum: | 10 |
Standard deviation: | 0.99 |
Variance: | 0.98 |
![]() | Rule warning: Methods with too many local variables |
warnif count > 0 from m in JustMyCode.Methods where
m.NbVariables > 15
orderby m.NbVariables descending
select new { m, m.NbVariables }
// Methods where NbVariables > 8 are hard to understand and maintain.
// Methods where NbVariables > 15 are extremely complex
// and should be split in smaller methods.
// See the definition of the Nbvariables metric here
// http://www.ndepend.com/Metrics.aspx#NbvariablesView Code Query or Rule Body
5 methods matched
methods | # Variables | Full Name |
---|---|---|
CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) | 25 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) |
.cctor() | 21 | Newtonsoft.Json.Utilities.ConvertUtils. .cctor() |
ParseNumber() | 16 | Newtonsoft.Json.JsonTextReader .ParseNumber() |
GenerateInternal(Type,Required,Boolean) | 16 | Newtonsoft.Json.Schema .JsonSchemaGenerator.GenerateInternal (Type,Required,Boolean) |
Compare(JTokenType,Object,Object) | 16 | Newtonsoft.Json.Linq.JValue.Compare (JTokenType,Object,Object) |
Statistics
Stat | # Variables |
---|---|
Sum: | 94 |
Average: | 18.8 |
Minimum: | 16 |
Maximum: | 25 |
Standard deviation: | 3.66 |
Variance: | 13.36 |
![]() | Rule warning: Methods with too many overloads |
warnif count > 0 from m in JustMyCode.Methods where
m.NbOverloads > 6 &&
!m.IsOperator // Don't report operator overload
orderby m.NbOverloads descending
select new { m, m.NbOverloads }
// Methods where NbOverloads > 6 might
// be a problem to maintain and provoke higher coupling
// than necessary.
// This might also reveal a potential misused of the
// C# and VB.NET language that since C#3 and VB9 support
// object initialization. This feature helps reducing the number
// of constructors of a class.
// See the definition of the NbOverloads metric here
// http://www.ndepend.com/Metrics.aspx#NbOverloadsView Code Query or Rule Body
187 methods matched
methods | # Overloads | Full Name |
---|---|---|
WriteValue(String) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (String) |
WriteValue(Int32) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Int32) |
WriteValue(UInt32) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (UInt32) |
WriteValue(Int64) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Int64) |
WriteValue(UInt64) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (UInt64) |
WriteValue(Single) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Single) |
WriteValue(Double) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Double) |
WriteValue(Boolean) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Boolean) |
WriteValue(Int16) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Int16) |
WriteValue(UInt16) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (UInt16) |
WriteValue(Char) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Char) |
WriteValue(Byte) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Byte) |
WriteValue(SByte) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (SByte) |
WriteValue(Decimal) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Decimal) |
WriteValue(DateTime) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (DateTime) |
WriteValue(DateTimeOffset) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (DateTimeOffset) |
WriteValue(Guid) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Guid) |
WriteValue(TimeSpan) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (TimeSpan) |
WriteValue(Nullable<Int32>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int32>) |
WriteValue(Nullable<UInt32>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt32>) |
WriteValue(Nullable<Int64>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int64>) |
WriteValue(Nullable<UInt64>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt64>) |
WriteValue(Nullable<Single>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Single>) |
WriteValue(Nullable<Double>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Double>) |
WriteValue(Nullable<Boolean>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Boolean>) |
WriteValue(Nullable<Int16>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int16>) |
WriteValue(Nullable<UInt16>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt16>) |
WriteValue(Nullable<Char>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Char>) |
WriteValue(Nullable<Byte>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Byte>) |
WriteValue(Nullable<SByte>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<SByte>) |
WriteValue(Nullable<Decimal>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Decimal>) |
WriteValue(Nullable<DateTime>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTime>) |
WriteValue(Nullable<DateTimeOffset>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTimeOffset>) |
WriteValue(Nullable<Guid>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Guid>) |
WriteValue(Nullable<TimeSpan>) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<TimeSpan>) |
WriteValue(Byte[]) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Byte[]) |
WriteValue(Uri) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Uri) |
WriteValue(Object) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (Object) |
WriteValue(JsonWriter,PrimitiveTypeCode ,Object) | 39 | Newtonsoft.Json.JsonWriter.WriteValue (JsonWriter,PrimitiveTypeCode,Object) |
ToString(DateTime) | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTime) |
ToString(DateTime,DateFormatHandling ,DateTimeZoneHandling) | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTime,DateFormatHandling ,DateTimeZoneHandling) |
ToString(DateTimeOffset) | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset) |
ToString(DateTimeOffset ,DateFormatHandling) | 29 | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset,DateFormatHandling) |
ToString(Boolean) | 29 | Newtonsoft.Json.JsonConvert.ToString (Boolean) |
ToString(Char) | 29 | Newtonsoft.Json.JsonConvert.ToString (Char) |
ToString(Enum) | 29 | Newtonsoft.Json.JsonConvert.ToString (Enum) |
ToString(Int32) | 29 | Newtonsoft.Json.JsonConvert.ToString (Int32) |
ToString(Int16) | 29 | Newtonsoft.Json.JsonConvert.ToString (Int16) |
ToString(UInt16) | 29 | Newtonsoft.Json.JsonConvert.ToString (UInt16) |
ToString(UInt32) | 29 | Newtonsoft.Json.JsonConvert.ToString (UInt32) |
ToString(Int64) | 29 | Newtonsoft.Json.JsonConvert.ToString (Int64) |
ToString(UInt64) | 29 | Newtonsoft.Json.JsonConvert.ToString (UInt64) |
ToString(Single) | 29 | Newtonsoft.Json.JsonConvert.ToString (Single) |
ToString(Single,FloatFormatHandling,Char ,Boolean) | 29 | Newtonsoft.Json.JsonConvert.ToString (Single,FloatFormatHandling,Char,Boolean ) |
ToString(Double) | 29 | Newtonsoft.Json.JsonConvert.ToString (Double) |
ToString(Double,FloatFormatHandling,Char ,Boolean) | 29 | Newtonsoft.Json.JsonConvert.ToString (Double,FloatFormatHandling,Char,Boolean ) |
ToString(Byte) | 29 | Newtonsoft.Json.JsonConvert.ToString (Byte) |
ToString(SByte) | 29 | Newtonsoft.Json.JsonConvert.ToString (SByte) |
ToString(Decimal) | 29 | Newtonsoft.Json.JsonConvert.ToString (Decimal) |
ToString(Guid) | 29 | Newtonsoft.Json.JsonConvert.ToString (Guid) |
ToString(Guid,Char) | 29 | Newtonsoft.Json.JsonConvert.ToString (Guid,Char) |
ToString(TimeSpan) | 29 | Newtonsoft.Json.JsonConvert.ToString (TimeSpan) |
ToString(TimeSpan,Char) | 29 | Newtonsoft.Json.JsonConvert.ToString (TimeSpan,Char) |
ToString(Uri) | 29 | Newtonsoft.Json.JsonConvert.ToString(Uri ) |
ToString(Uri,Char) | 29 | Newtonsoft.Json.JsonConvert.ToString(Uri ,Char) |
ToString(String) | 29 | Newtonsoft.Json.JsonConvert.ToString (String) |
ToString(String,Char) | 29 | Newtonsoft.Json.JsonConvert.ToString (String,Char) |
ToString(Object) | 29 | Newtonsoft.Json.JsonConvert.ToString (Object) |
WriteValue(Object) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Object) |
WriteValue(String) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(String) |
WriteValue(Int32) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Int32) |
WriteValue(UInt32) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt32) |
WriteValue(Int64) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Int64) |
WriteValue(UInt64) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt64) |
WriteValue(Single) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Single) |
WriteValue(Nullable<Single>) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Nullable<Single>) |
WriteValue(Double) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Double) |
WriteValue(Nullable<Double>) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Nullable<Double>) |
WriteValue(Boolean) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Boolean) |
WriteValue(Int16) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Int16) |
WriteValue(UInt16) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt16) |
WriteValue(Char) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Char) |
WriteValue(Byte) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Byte) |
WriteValue(SByte) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(SByte) |
WriteValue(Decimal) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Decimal) |
WriteValue(DateTime) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(DateTime) |
WriteValue(Byte[]) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Byte[]) |
WriteValue(DateTimeOffset) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(DateTimeOffset) |
WriteValue(Guid) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Guid) |
WriteValue(TimeSpan) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(TimeSpan) |
WriteValue(Uri) | 23 | Newtonsoft.Json.JsonTextWriter .WriteValue(Uri) |
WriteValue(Decimal) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Decimal) |
WriteValue(Boolean) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Boolean) |
WriteValue(Byte) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Byte) |
WriteValue(Nullable<Byte>) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Nullable <Byte>) |
WriteValue(Char) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Char) |
WriteValue(Byte[]) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Byte[]) |
WriteValue(DateTime) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(DateTime) |
WriteValue(DateTimeOffset) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue (DateTimeOffset) |
WriteValue(Double) | 22 | Newtonsoft.Json.Serialization .TraceJsonWriter.WriteValue(Double) |
Statistics
Stat | # Overloads |
---|---|
Sum: | 4 641 |
Average: | 24.82 |
Minimum: | 8 |
Maximum: | 39 |
Standard deviation: | 8.95 |
Variance: | 80.13 |
![]() | Rule warning: Types with too many methods |
warnif count > 0 from t in JustMyCode.Types where
t.Methods.Count() > 20
orderby t.Methods.Count() descending
select new { t, t.InstanceMethods, t.StaticMethods }
// Types where Methods.Count() > 20 might be hard to
// understand and maintain
// but there might be cases where it is relevant
// to have a high number of methods.
// For example, the System.Windows.Forms.DataGridView
// standard class has more than 1000 methods.
View Code Query or Rule Body
68 types matched
types | InstanceMethods | StaticMethods | Full Name |
---|---|---|---|
JsonSerializerTest | 325 methods | 28 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JObjectTests | 111 methods | 27 methods | Newtonsoft.Json.Tests.Linq.JObjectTests |
JToken | 52 methods | 85 methods | Newtonsoft.Json.Linq.JToken |
JsonTextReaderTest | 122 methods | 1 method | Newtonsoft.Json.Tests.JsonTextReaderTest |
JsonWriter | 104 methods | 5 methods | Newtonsoft.Json.JsonWriter |
JContainer | 87 methods | 1 method | Newtonsoft.Json.Linq.JContainer |
JPathParseTests | 70 methods | 17 methods | Newtonsoft.Json.Tests.Linq.JsonPath .JPathParseTests |
JsonSerializer | 74 methods | 6 methods | Newtonsoft.Json.JsonSerializer |
JsonSchema | 76 methods | 4 methods | Newtonsoft.Json.Schema.JsonSchema |
JTokenTests | 34 methods | 45 methods | Newtonsoft.Json.Tests.Linq.JTokenTests |
JsonConvert | 0 method | 76 methods | Newtonsoft.Json.JsonConvert |
JValueTests | 60 methods | 10 methods | Newtonsoft.Json.Tests.Linq.JValueTests |
JsonProperty | 60 methods | 0 method | Newtonsoft.Json.Serialization .JsonProperty |
JsonSerializerProxy | 59 methods | 0 method | Newtonsoft.Json.Serialization .JsonSerializerProxy |
BsonReaderTests | 59 methods | 0 method | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
JsonSerializerCollectionsTests | 58 methods | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests |
JsonReader | 56 methods | 2 methods | Newtonsoft.Json.JsonReader |
JObject | 52 methods | 5 methods | Newtonsoft.Json.Linq.JObject |
JsonSerializerSettings | 56 methods | 0 method | Newtonsoft.Json.JsonSerializerSettings |
XmlNodeConverterTest | 51 methods | 5 methods | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest |
JsonTextWriter | 55 methods | 0 method | Newtonsoft.Json.JsonTextWriter |
DefaultContractResolver | 42 methods | 13 methods | Newtonsoft.Json.Serialization .DefaultContractResolver |
LinqToJsonTest | 35 methods | 20 methods | Newtonsoft.Json.Tests.Linq .LinqToJsonTest |
JPathExecuteTests | 50 methods | 3 methods | Newtonsoft.Json.Tests.Linq.JsonPath .JPathExecuteTests |
JsonValidatingReader | 45 methods | 7 methods | Newtonsoft.Json.JsonValidatingReader |
JsonSerializerInternalReader | 45 methods | 6 methods | Newtonsoft.Json.Serialization .JsonSerializerInternalReader |
JsonValidatingReaderTests | 47 methods | 3 methods | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
JsonTextReader | 48 methods | 1 method | Newtonsoft.Json.JsonTextReader |
JsonSchemaModel | 46 methods | 2 methods | Newtonsoft.Json.Schema.JsonSchemaModel |
ReflectionUtils | 0 method | 47 methods | Newtonsoft.Json.Utilities .ReflectionUtils |
JsonTextWriterTest | 42 methods | 4 methods | Newtonsoft.Json.Tests.JsonTextWriterTest |
JValue | 34 methods | 11 methods | Newtonsoft.Json.Linq.JValue |
PerformanceTests | 41 methods | 4 methods | Newtonsoft.Json.Tests.PerformanceTests |
JsonConvertTest | 30 methods | 14 methods | Newtonsoft.Json.Tests.JsonConvertTest |
TypeNameHandlingTests | 43 methods | 0 method | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests |
EmitDefaultValueClass | 42 methods | 0 method | Newtonsoft.Json.Tests.Serialization .EmitDefaultValueClass |
BsonWriter | 41 methods | 0 method | Newtonsoft.Json.Bson.BsonWriter |
TraceJsonWriter | 39 methods | 0 method | Newtonsoft.Json.Serialization .TraceJsonWriter |
SerializationErrorHandlingTests | 27 methods | 12 methods | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests |
JsonSerializerInternalWriter | 36 methods | 1 method | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter |
JTokenWriter | 37 methods | 0 method | Newtonsoft.Json.Linq.JTokenWriter |
JArrayTests | 33 methods | 4 methods | Newtonsoft.Json.Tests.Linq.JArrayTests |
BsonReader | 36 methods | 0 method | Newtonsoft.Json.Bson.BsonReader |
JsonContract | 34 methods | 2 methods | Newtonsoft.Json.Serialization .JsonContract |
BsonWriterTests | 30 methods | 5 methods | Newtonsoft.Json.Tests.Bson .BsonWriterTests |
JsonSchemaBuilderTests | 34 methods | 1 method | Newtonsoft.Json.Tests.Schema .JsonSchemaBuilderTests |
TraceWriterTests | 23 methods | 9 methods | Newtonsoft.Json.Tests.Serialization .TraceWriterTests |
DictionaryWrapper<TKey,TValue> | 30 methods | 1 method | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> |
PreserveReferencesHandlingTests | 31 methods | 0 method | Newtonsoft.Json.Tests.Serialization .PreserveReferencesHandlingTests |
XmlNodeConverter | 28 methods | 2 methods | Newtonsoft.Json.Converters .XmlNodeConverter |
ExtensionsTests | 23 methods | 6 methods | Newtonsoft.Json.Tests.Schema .ExtensionsTests |
LinqToJsonTests | 14 methods | 14 methods | Newtonsoft.Json.Tests.Documentation .LinqToJsonTests |
CustomerDataSet+CustomersDataTable | 26 methods | 1 method | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersDataTable |
Ratio | 23 methods | 4 methods | Newtonsoft.Json.Tests.TestObjects.Ratio |
JsonPropertyAttribute | 26 methods | 0 method | Newtonsoft.Json.JsonPropertyAttribute |
ImmutableCollectionsTests | 22 methods | 4 methods | Newtonsoft.Json.Tests.Serialization .ImmutableCollectionsTests |
DynamicProxyMetaObject<T> | 20 methods | 5 methods | Newtonsoft.Json.Utilities .DynamicProxyMetaObject<T> |
CollectionWrapper<T> | 22 methods | 2 methods | Newtonsoft.Json.Utilities .CollectionWrapper<T> |
DateTimeUtils | 0 method | 24 methods | Newtonsoft.Json.Utilities.DateTimeUtils |
JArray | 20 methods | 4 methods | Newtonsoft.Json.Linq.JArray |
JsonSchemaGeneratorTests | 22 methods | 1 method | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests |
FSharpUtils | 0 method | 22 methods | Newtonsoft.Json.Utilities.FSharpUtils |
JsonObjectContract | 22 methods | 0 method | Newtonsoft.Json.Serialization .JsonObjectContract |
ContractResolverTests | 16 methods | 6 methods | Newtonsoft.Json.Tests.Serialization .ContractResolverTests |
JTokenReaderTest | 21 methods | 1 method | Newtonsoft.Json.Tests.Linq .JTokenReaderTest |
JsonSchemaGenerator | 20 methods | 1 method | Newtonsoft.Json.Schema .JsonSchemaGenerator |
ExtensionDataTests | 21 methods | 0 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests |
ExpressionReflectionDelegateFactoryTests | 17 methods | 4 methods | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s |
Statistics
Stat | InstanceMethods | StaticMethods |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Types with too many fields |
warnif count > 0 from t in JustMyCode.Types where
t.Fields.Count() > 20 &&
!t.IsEnumeration
orderby t.Fields.Count() descending
select new { t, t.InstanceFields, t.StaticFields, t.SizeOfInst }
// Types where Fields.Count() > 20 and not IsEnumeration
// might be hard to understand and maintain
// but there might be cases where it is relevant
// to have a high number of fields.
// For example, the System.Windows.Forms.Control
// standard class has more than 200 fields.View Code Query or Rule Body
17 types matched
types | InstanceFields | StaticFields | Size of instance | Full Name |
---|---|---|---|---|
DynamicTests+<JValueAddition >o__SiteContainer114 | 0 field | 327 fields | N/A | Newtonsoft.Json.Tests.Linq.DynamicTests+ <JValueAddition>o__SiteContainer114 |
DynamicTests+<JValueEquals >o__SiteContainer35 | 0 field | 222 fields | N/A | Newtonsoft.Json.Tests.Linq.DynamicTests+ <JValueEquals>o__SiteContainer35 |
JsonSerializerSettings | 30 fields | 22 fields | 134 | Newtonsoft.Json.JsonSerializerSettings |
JTokenTests | 0 field | 45 fields | 0 | Newtonsoft.Json.Tests.Linq.JTokenTests |
ExpandoObjectConverterTests+ <DeserializeExpandoObject >o__SiteContainer9 | 0 field | 42 fields | N/A | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests+ <DeserializeExpandoObject >o__SiteContainer9 |
JsonSchema | 37 fields | 0 field | 148 | Newtonsoft.Json.Schema.JsonSchema |
JsonSchemaConstants | 0 field | 33 fields | N/A | Newtonsoft.Json.Schema .JsonSchemaConstants |
DynamicTests+<JValueToString >o__SiteContainer25c | 0 field | 33 fields | N/A | Newtonsoft.Json.Tests.Linq.DynamicTests+ <JValueToString>o__SiteContainer25c |
JsonProperty | 31 fields | 0 field | 114 | Newtonsoft.Json.Serialization .JsonProperty |
JsonSerializer | 30 fields | 0 field | 127 | Newtonsoft.Json.JsonSerializer |
DateTimeParser | 12 fields | 15 fields | 48 | Newtonsoft.Json.Utilities.DateTimeParser |
JsonSerializerTest | 0 field | 27 fields | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JObjectTests | 0 field | 27 fields | 0 | Newtonsoft.Json.Tests.Linq.JObjectTests |
ImmutableCollectionsUtils | 0 field | 25 fields | N/A | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils |
JsonSchemaModel | 23 fields | 0 field | 78 | Newtonsoft.Json.Schema.JsonSchemaModel |
JsonContract | 21 fields | 0 field | 64 | Newtonsoft.Json.Serialization .JsonContract |
EmitDefaultValueClass | 21 fields | 0 field | 133 | Newtonsoft.Json.Tests.Serialization .EmitDefaultValueClass |
Statistics
Stat | InstanceFields | StaticFields | Size of instance |
---|---|---|---|
Sum: | 0 | 0 | 846 |
Average: | 0 | 0 | 76.91 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 148 |
Standard deviation: | 0 | 0 | 55.67 |
Variance: | 0 | 0 | 3 099 |
![]() | Rule warning: Types with poor cohesion |
warnif count > 0 from t in JustMyCode.Types where
(t.LCOM > 0.8 || t.LCOMHS > 0.95) &&
t.NbFields > 10 &&
t.NbMethods >10
orderby t.LCOM descending, t.LCOMHS descending
select new { t, t.LCOM, t.LCOMHS,
t.NbMethods, t.NbFields }
// Types where LCOM > 0.8 and NbFields > 10
// and NbMethods >10 might be problematic.
// However, it is very hard to avoid such
// non-cohesive types. The LCOMHS metric
// is often considered as more efficient to
// detect non-cohesive types.
// See the definition of the LCOM metric here
// http://www.ndepend.com/Metrics.aspx#LCOMView Code Query or Rule Body
16 types matched
types | Lack of Cohesion Of Methods (LCOM) | LCOM Henderson-Sellers (LCOMHS) | # Methods | # Fields | Full Name |
---|---|---|---|---|---|
JToken | 0.98 | 0.98 | 139 | 16 | Newtonsoft.Json.Linq.JToken |
JsonSchema | 0.98 | 0.99 | 81 | 37 | Newtonsoft.Json.Schema.JsonSchema |
JsonSerializerSettings | 0.97 | 0.98 | 58 | 52 | Newtonsoft.Json.JsonSerializerSettings |
JsonContract | 0.97 | 0.99 | 37 | 21 | Newtonsoft.Json.Serialization .JsonContract |
JsonWriter | 0.96 | 0.97 | 111 | 13 | Newtonsoft.Json.JsonWriter |
JsonProperty | 0.96 | 0.97 | 61 | 31 | Newtonsoft.Json.Serialization .JsonProperty |
JsonSerializer | 0.96 | 0.97 | 81 | 30 | Newtonsoft.Json.JsonSerializer |
DefaultContractResolver | 0.95 | 0.97 | 58 | 16 | Newtonsoft.Json.Serialization .DefaultContractResolver |
JValueTests | 0.95 | 0.97 | 71 | 11 | Newtonsoft.Json.Tests.Linq.JValueTests |
JsonPropertyAttribute | 0.93 | 0.96 | 28 | 13 | Newtonsoft.Json.JsonPropertyAttribute |
JsonReader | 0.92 | 0.93 | 59 | 16 | Newtonsoft.Json.JsonReader |
JsonObjectContract | 0.9 | 0.95 | 23 | 11 | Newtonsoft.Json.Serialization .JsonObjectContract |
BsonReader | 0.89 | 0.91 | 41 | 15 | Newtonsoft.Json.Bson.BsonReader |
JsonValidatingReader+SchemaScope | 0.87 | 0.93 | 20 | 13 | Newtonsoft.Json .JsonValidatingReader+SchemaScope |
JsonValidatingReader | 0.84 | 0.86 | 54 | 12 | Newtonsoft.Json.JsonValidatingReader |
JsonTextReader | 0.82 | 0.83 | 50 | 11 | Newtonsoft.Json.JsonTextReader |
Statistics
Stat | Lack of Cohesion Of Methods (LCOM) | LCOM Henderson-Sellers (LCOMHS) | # Methods | # Fields |
---|---|---|---|---|
Sum: | 14.83 | 15.18 | 972 | 318 |
Average: | 0.93 | 0.95 | 60.75 | 19.88 |
Minimum: | 0.82 | 0.83 | 20 | 11 |
Maximum: | 0.98 | 0.99 | 139 | 52 |
Standard deviation: | 0.048 | 0.045 | 30.48 | 11.35 |
Variance: | 0.0023 | 0.002 | 929.06 | 128.86 |
2101
Object Oriented Design |
|
![]() | Rule warning: Base class should not use derivatives |
warnif count > 0
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }View Code Query or Rule Body
5 types matched
types | derivedClassesUsed | Full Name |
---|---|---|
XmlNodeWrapper | 3 types | Newtonsoft.Json.Converters .XmlNodeWrapper |
XContainerWrapper | 2 types | Newtonsoft.Json.Converters .XContainerWrapper |
JsonSerializerInternalBase | 1 type | Newtonsoft.Json.Serialization .JsonSerializerInternalBase |
JToken | 6 types | Newtonsoft.Json.Linq.JToken |
JContainer | 4 types | Newtonsoft.Json.Linq.JContainer |
Statistics
Stat | derivedClassesUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Class shouldn't be too deep in inheritance tree |
warnif count > 0 from t in JustMyCode.Types
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()
// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3
select new { t, baseClasses,
// The metric value DepthOfInheritance takes account
// of third-party base classes
t.DepthOfInheritance }
// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here
// http://www.ndepend.com/Metrics.aspx#DIT
View Code Query or Rule Body
1 types matched
type | baseClasses | Depth of inheritance | Full Name |
---|---|---|---|
SequenceContainer_DSL | 3 types | 4 | Newtonsoft.Json.Tests.Schema .SequenceContainer_DSL |
Statistics
Stat | baseClasses | Depth of inheritance |
---|---|---|
Sum: | 0 | 4 |
Average: | 0 | 4 |
Minimum: | 0 | 4 |
Maximum: | 0 | 4 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Class with no descendant should be sealed if possible |
warnif count > 0 from t in JustMyCode.Types where
t.IsClass &&
t.NbChildren ==0 &&
!t.IsSealed &&
!t.IsStatic
// && !t.IsPublic <-- You might want to add this condition
// if you are developing a framework
// with classes that are intended to be
// sub-classed by your clients.
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }View Code Query or Rule Body
885 types matched
types | # lines of code (LOC) | Full Name |
---|---|---|
JsonSerializerTest | 2 102 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JsonTextReaderTest | 1 568 | Newtonsoft.Json.Tests.JsonTextReaderTest |
BsonReaderTests | 912 | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
JsonSerializerInternalReader | 906 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader |
JObjectTests | 770 | Newtonsoft.Json.Tests.Linq.JObjectTests |
JsonValidatingReaderTests | 754 | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
JsonTextWriterTest | 675 | Newtonsoft.Json.Tests.JsonTextWriterTest |
JsonTextReader | 638 | Newtonsoft.Json.JsonTextReader |
JTokenTests | 542 | Newtonsoft.Json.Tests.Linq.JTokenTests |
DynamicTests | 472 | Newtonsoft.Json.Tests.Linq.DynamicTests |
JsonSerializerInternalWriter | 440 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter |
JsonConvertTest | 437 | Newtonsoft.Json.Tests.JsonConvertTest |
BsonWriterTests | 412 | Newtonsoft.Json.Tests.Bson .BsonWriterTests |
XmlNodeConverterTest | 407 | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest |
PerformanceTests | 401 | Newtonsoft.Json.Tests.PerformanceTests |
TypeNameHandlingTests | 397 | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests |
XmlNodeConverter | 393 | Newtonsoft.Json.Converters .XmlNodeConverter |
TraceWriterTests | 382 | Newtonsoft.Json.Tests.Serialization .TraceWriterTests |
JsonValidatingReader | 368 | Newtonsoft.Json.JsonValidatingReader |
JsonSerializerCollectionsTests | 355 | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests |
JPath | 322 | Newtonsoft.Json.Linq.JsonPath.JPath |
BsonReader | 307 | Newtonsoft.Json.Bson.BsonReader |
JPathExecuteTests | 276 | Newtonsoft.Json.Tests.Linq.JsonPath .JPathExecuteTests |
JTokenReaderTest | 272 | Newtonsoft.Json.Tests.Linq .JTokenReaderTest |
JPathParseTests | 261 | Newtonsoft.Json.Tests.Linq.JsonPath .JPathParseTests |
LinqToJsonTest | 253 | Newtonsoft.Json.Tests.Linq .LinqToJsonTest |
JValueTests | 225 | Newtonsoft.Json.Tests.Linq.JValueTests |
JsonSchemaBuilder | 222 | Newtonsoft.Json.Schema.JsonSchemaBuilder |
PreserveReferencesHandlingTests | 211 | Newtonsoft.Json.Tests.Serialization .PreserveReferencesHandlingTests |
JArrayTests | 206 | Newtonsoft.Json.Tests.Linq.JArrayTests |
SerializationErrorHandlingTests | 198 | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests |
JsonSchemaBuilderTests | 177 | Newtonsoft.Json.Tests.Schema .JsonSchemaBuilderTests |
DataTableConverterTests | 174 | Newtonsoft.Json.Tests.Converters .DataTableConverterTests |
DictionaryWrapper<TKey,TValue> | 170 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> |
JObject | 169 | Newtonsoft.Json.Linq.JObject |
ExtensionsTests | 160 | Newtonsoft.Json.Tests.Schema .ExtensionsTests |
JsonSchemaGenerator | 155 | Newtonsoft.Json.Schema .JsonSchemaGenerator |
BsonBinaryWriter | 143 | Newtonsoft.Json.Bson.BsonBinaryWriter |
JsonSchemaGeneratorTests | 141 | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests |
JsonSchemaTests | 141 | Newtonsoft.Json.Tests.Schema .JsonSchemaTests |
ContractResolverTests | 133 | Newtonsoft.Json.Tests.Serialization .ContractResolverTests |
TraceJsonWriter | 128 | Newtonsoft.Json.Serialization .TraceJsonWriter |
SerializationEventAttributeTests | 125 | Newtonsoft.Json.Tests.Serialization .SerializationEventAttributeTests |
JsonSchemaWriter | 122 | Newtonsoft.Json.Schema.JsonSchemaWriter |
DataSetConverterTests | 120 | Newtonsoft.Json.Tests.Converters .DataSetConverterTests |
ImmutableCollectionsTests | 116 | Newtonsoft.Json.Tests.Serialization .ImmutableCollectionsTests |
MetadataPropertyHandlingTests | 116 | Newtonsoft.Json.Tests.Serialization .MetadataPropertyHandlingTests |
JTokenReader | 115 | Newtonsoft.Json.Linq.JTokenReader |
DynamicReflectionDelegateFactory | 114 | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory |
CustomerDataSet | 113 | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet |
ExpressionReflectionDelegateFactory | 110 | Newtonsoft.Json.Utilities .ExpressionReflectionDelegateFactory |
ExtensionDataTests | 110 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests |
BsonWriter | 106 | Newtonsoft.Json.Bson.BsonWriter |
SerializationTests | 106 | Newtonsoft.Json.Tests.Documentation .SerializationTests |
IsoDateTimeConverterTests | 105 | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests |
StringEnumConverterTests | 102 | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests |
ShouldSerializeTests | 101 | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests |
CustomerDataSet+CustomersDataTable | 96 | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersDataTable |
ExpressionReflectionDelegateFactoryTests | 91 | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s |
DateTimeUtilsTests | 88 | Newtonsoft.Json.Tests.Utilities .DateTimeUtilsTests |
JTokenWriter | 86 | Newtonsoft.Json.Linq.JTokenWriter |
JPropertyKeyedCollection | 85 | Newtonsoft.Json.Linq .JPropertyKeyedCollection |
EntitiesSerializationTests | 85 | Newtonsoft.Json.Tests.Serialization .EntitiesSerializationTests |
JTokenWriterTest | 85 | Newtonsoft.Json.Tests.Linq .JTokenWriterTest |
CollectionWrapper<T> | 81 | Newtonsoft.Json.Utilities .CollectionWrapper<T> |
JsonSchemaModelBuilder | 79 | Newtonsoft.Json.Schema .JsonSchemaModelBuilder |
DynamicTests | 79 | Newtonsoft.Json.Tests.Serialization .DynamicTests |
JsonSerializerProxy | 75 | Newtonsoft.Json.Serialization .JsonSerializerProxy |
JsonArrayContract | 74 | Newtonsoft.Json.Serialization .JsonArrayContract |
DataTableConverter | 73 | Newtonsoft.Json.Converters .DataTableConverter |
LinqToJsonTests | 69 | Newtonsoft.Json.Tests.Documentation .LinqToJsonTests |
StringEnumConverter | 68 | Newtonsoft.Json.Converters .StringEnumConverter |
RegexConverter | 67 | Newtonsoft.Json.Converters .RegexConverter |
RegexConverterTests | 67 | Newtonsoft.Json.Tests.Converters .RegexConverterTests |
DefaultValueHandlingTests | 65 | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests |
JProperty | 63 | Newtonsoft.Json.Linq.JProperty |
DiscriminatedUnionConverter | 62 | Newtonsoft.Json.Converters .DiscriminatedUnionConverter |
JArray | 61 | Newtonsoft.Json.Linq.JArray |
ReferenceLoopHandlingTests | 57 | Newtonsoft.Json.Tests.Serialization .ReferenceLoopHandlingTests |
DemoTests | 56 | Newtonsoft.Json.Tests.DemoTests |
JavaScriptDateTimeConverterTests | 53 | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests |
PersonRole | 53 | Newtonsoft.Json.Tests.LinqToSql .PersonRole |
JsonSerializerSettings | 52 | Newtonsoft.Json.JsonSerializerSettings |
JPropertyTests | 51 | Newtonsoft.Json.Tests.Linq .JPropertyTests |
Person | 49 | Newtonsoft.Json.Tests.LinqToSql.Person |
ReflectionObject | 48 | Newtonsoft.Json.Utilities .ReflectionObject |
JConstructor | 46 | Newtonsoft.Json.Linq.JConstructor |
BinaryConverter | 44 | Newtonsoft.Json.Converters .BinaryConverter |
Base64Encoder | 44 | Newtonsoft.Json.Utilities.Base64Encoder |
ConstructorHandlingTests | 43 | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests |
JsonSerializerTest+ISerializableTestObje ct | 43 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect |
JsonSchemaModelBuilderTests | 42 | Newtonsoft.Json.Tests.Schema .JsonSchemaModelBuilderTests |
IsoDateTimeConverter | 41 | Newtonsoft.Json.Converters .IsoDateTimeConverter |
TraceJsonReader | 41 | Newtonsoft.Json.Serialization .TraceJsonReader |
CamelCasePropertyNamesContractResolverTe sts | 41 | Newtonsoft.Json.Tests.Serialization .CamelCasePropertyNamesContractResolverT ests |
JsonPropertyCollection | 40 | Newtonsoft.Json.Serialization .JsonPropertyCollection |
EntityKeyMemberConverter | 39 | Newtonsoft.Json.Converters .EntityKeyMemberConverter |
BinaryConverterTests | 39 | Newtonsoft.Json.Tests.Converters .BinaryConverterTests |
ExpandoObjectConverterTests | 39 | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests |
KeyValuePairConverter | 38 | Newtonsoft.Json.Converters .KeyValuePairConverter |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 25 535 |
Average: | 28.85 |
Minimum: | 0 |
Maximum: | 2 102 |
Standard deviation: | 122.66 |
Variance: | 15 046 |
![]() | Rule warning: Overrides of Method() should call base.Method() |
// Overrides of Method() should refine the behavior of base.Method().
// If base.Method() is not called, the base behavior is not refined but it is replaced.
// Violations of this rule are a sign of design flaw,
// especially if the design provides valid reasons
// that advocates that the base behavior must be replaced and not refined.
//
// Discussions on this topic are available here:
// http://stackoverflow.com/questions/1107022/should-i-call-the-base-class-implementation-when-overriding-a-method-in-c-sharp
// http://stackoverflow.com/questions/2945147/make-sure-base-method-gets-called-in-c-sharp
warnif count > 0
from t in Types // Take account of third-party types too
// Bother only classes with descendant
where t.IsClass && t.NbChildren > 0
from mBase in t.InstanceMethods
where mBase.IsVirtual &&
!mBase.IsThirdParty &&
!mBase.IsAbstract &&
!mBase.IsExplicitInterfaceImpl
from mOverride in mBase.OverridesDirectDerived
where !mOverride.IsUsing(mBase)
select new { mOverride, shouldCall = mBase, definedInBaseClass = mBase.ParentType }
View Code Query or Rule Body
113 methods matched
methods | shouldCall | definedInBaseClass | Full Name |
---|---|---|---|
set_QuoteChar(Char) | set_QuoteChar(Char) | JsonReader | Newtonsoft.Json.JsonValidatingReader .set_QuoteChar(Char) |
ReadInternal() | ReadInternal() | JsonReader | Newtonsoft.Json.Bson.BsonReader .ReadInternal() |
ReadInternal() | ReadInternal() | JsonReader | Newtonsoft.Json.JsonTextReader .ReadInternal() |
ReadInternal() | ReadInternal() | JsonReader | Newtonsoft.Json.Linq.JTokenReader .ReadInternal() |
OnStringEscapeHandlingChanged() | OnStringEscapeHandlingChanged() | JsonWriter | Newtonsoft.Json.JsonTextWriter .OnStringEscapeHandlingChanged() |
WriteStartObject() | WriteStartObject() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteStartObject() |
WriteStartArray() | WriteStartArray() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteStartArray() |
WriteStartConstructor(String) | WriteStartConstructor(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter .WriteStartConstructor(String) |
WriteStartConstructor(String) | WriteStartConstructor(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteStartConstructor(String) |
WritePropertyName(String) | WritePropertyName(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WritePropertyName(String) |
WritePropertyName(String,Boolean) | WritePropertyName(String,Boolean) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WritePropertyName(String,Boolean) |
WriteEnd(JsonToken) | WriteEnd(JsonToken) | JsonWriter | Newtonsoft.Json.JsonTextWriter.WriteEnd (JsonToken) |
WriteEnd(JsonToken) | WriteEnd(JsonToken) | JsonWriter | Newtonsoft.Json.Linq.JTokenWriter .WriteEnd(JsonToken) |
WriteIndent() | WriteIndent() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteIndent() |
WriteValueDelimiter() | WriteValueDelimiter() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValueDelimiter() |
WriteIndentSpace() | WriteIndentSpace() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteIndentSpace() |
WriteNull() | WriteNull() | JsonWriter | Newtonsoft.Json.JsonTextWriter.WriteNull () |
WriteUndefined() | WriteUndefined() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteUndefined() |
WriteRaw(String) | WriteRaw(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter.WriteRaw (String) |
WriteRaw(String) | WriteRaw(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter.WriteRaw (String) |
WriteRawValue(String) | WriteRawValue(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter .WriteRawValue(String) |
WriteValue(String) | WriteValue(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(String) |
WriteValue(Int32) | WriteValue(Int32) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Int32) |
WriteValue(UInt32) | WriteValue(UInt32) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt32) |
WriteValue(Int64) | WriteValue(Int64) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Int64) |
WriteValue(UInt64) | WriteValue(UInt64) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt64) |
WriteValue(Single) | WriteValue(Single) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Single) |
WriteValue(Double) | WriteValue(Double) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Double) |
WriteValue(Boolean) | WriteValue(Boolean) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Boolean) |
WriteValue(Int16) | WriteValue(Int16) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Int16) |
WriteValue(UInt16) | WriteValue(UInt16) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt16) |
WriteValue(Char) | WriteValue(Char) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Char) |
WriteValue(Byte) | WriteValue(Byte) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Byte) |
WriteValue(SByte) | WriteValue(SByte) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(SByte) |
WriteValue(Decimal) | WriteValue(Decimal) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Decimal) |
WriteValue(DateTime) | WriteValue(DateTime) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(DateTime) |
WriteValue(DateTimeOffset) | WriteValue(DateTimeOffset) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(DateTimeOffset) |
WriteValue(Guid) | WriteValue(Guid) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Guid) |
WriteValue(TimeSpan) | WriteValue(TimeSpan) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(TimeSpan) |
WriteValue(Nullable<Single>) | WriteValue(Nullable<Single>) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Nullable<Single>) |
WriteValue(Nullable<Double>) | WriteValue(Nullable<Double>) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Nullable<Double>) |
WriteValue(Byte[]) | WriteValue(Byte[]) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Byte[]) |
WriteValue(Uri) | WriteValue(Uri) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Uri) |
WriteComment(String) | WriteComment(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter .WriteComment(String) |
WriteComment(String) | WriteComment(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteComment(String) |
WriteWhitespace(String) | WriteWhitespace(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteWhitespace(String) |
get_CanRead() | get_CanRead() | JsonConverter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .CustomJsonConverter+KeysJsonConverter .get_CanRead() |
get_CanRead() | get_CanRead() | JsonConverter | Newtonsoft.Json.Tests.Linq .JObjectTests+FooJsonConverter .get_CanRead() |
get_CanWrite() | get_CanWrite() | JsonConverter | Newtonsoft.Json.Converters .CustomCreationConverter<T>.get_CanWrite () |
get_CanWrite() | get_CanWrite() | JsonConverter | Newtonsoft.Json.Converters .ExpandoObjectConverter.get_CanWrite() |
get_CanWrite() | get_CanWrite() | JsonConverter | Newtonsoft.Json.Tests.Linq .JValueTests+ReadOnlyStringConverter .get_CanWrite() |
PopulateInternal(JsonReader,Object) | PopulateInternal(JsonReader,Object) | JsonSerializer | Newtonsoft.Json.Serialization .JsonSerializerProxy.PopulateInternal (JsonReader,Object) |
DeserializeInternal(JsonReader,Type) | DeserializeInternal(JsonReader,Type) | JsonSerializer | Newtonsoft.Json.Serialization .JsonSerializerProxy.DeserializeInternal (JsonReader,Type) |
SerializeInternal(JsonWriter,Object,Type ) | SerializeInternal(JsonWriter,Object,Type) | JsonSerializer | Newtonsoft.Json.Serialization .JsonSerializerProxy.SerializeInternal (JsonWriter,Object,Type) |
WriteStartObject() | WriteStartObject() | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WriteStartObject() |
WritePropertyName(String) | WritePropertyName(String) | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WritePropertyName (String) |
WritePropertyName(String,Boolean) | WritePropertyName(String,Boolean) | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WritePropertyName (String,Boolean) |
WriteNull() | WriteNull() | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WriteNull() |
get_LocalName() | get_LocalName() | XmlNodeWrapper | Newtonsoft.Json.Converters .XmlDocumentTypeWrapper.get_LocalName() |
get_NodeType() | get_NodeType() | XObjectWrapper | Newtonsoft.Json.Converters .XDeclarationWrapper.get_NodeType() |
get_LocalName() | get_LocalName() | XObjectWrapper | Newtonsoft.Json.Converters .XDocumentTypeWrapper.get_LocalName() |
get_LocalName() | get_LocalName() | XObjectWrapper | Newtonsoft.Json.Converters .XProcessingInstructionWrapper .get_LocalName() |
get_LocalName() | get_LocalName() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_LocalName() |
get_ChildNodes() | get_ChildNodes() | XObjectWrapper | Newtonsoft.Json.Converters .XContainerWrapper.get_ChildNodes() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters .XContainerWrapper.get_ParentNode() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters.XTextWrapper .get_ParentNode() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters .XCommentWrapper.get_ParentNode() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_ParentNode() |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters.XTextWrapper .get_Value() |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters .XCommentWrapper.get_Value() |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters .XProcessingInstructionWrapper.get_Value () |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_Value() |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters.XTextWrapper .set_Value(String) |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters .XCommentWrapper.set_Value(String) |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters .XProcessingInstructionWrapper.set_Value (String) |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.set_Value(String) |
AppendChild(IXmlNode) | AppendChild(IXmlNode) | XObjectWrapper | Newtonsoft.Json.Converters .XContainerWrapper.AppendChild(IXmlNode) |
get_NamespaceUri() | get_NamespaceUri() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_NamespaceUri() |
CreateMemberValueProvider(MemberInfo) | CreateMemberValueProvider(MemberInfo) | DefaultContractResolver | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ReflectionContractRe solver.CreateMemberValueProvider (MemberInfo) |
ResolvePropertyName(String) | ResolvePropertyName(String) | DefaultContractResolver | Newtonsoft.Json.Serialization .CamelCasePropertyNamesContractResolver .ResolvePropertyName(String) |
ResolvePropertyName(String) | ResolvePropertyName(String) | DefaultContractResolver | Newtonsoft.Json.Tests.TestObjects .MetroPropertyNameResolver .ResolvePropertyName(String) |
get_First() | get_First() | JToken | Newtonsoft.Json.Linq.JContainer .get_First() |
get_Last() | get_Last() | JToken | Newtonsoft.Json.Linq.JContainer.get_Last () |
Children() | Children() | JToken | Newtonsoft.Json.Linq.JContainer.Children () |
Values<T>() | Values<T>() | JToken | Newtonsoft.Json.Linq.JContainer.Values<T >() |
ToString() | ToString() | JToken | Newtonsoft.Json.Linq.JValue.ToString() |
GetMetaObject(Expression) | GetMetaObject(Expression) | JToken | Newtonsoft.Json.Linq.JValue .GetMetaObject(Expression) |
RemoveItemAt(Int32) | RemoveItemAt(Int32) | JContainer | Newtonsoft.Json.Linq.JProperty .RemoveItemAt(Int32) |
RemoveItem(JToken) | RemoveItem(JToken) | JContainer | Newtonsoft.Json.Linq.JProperty .RemoveItem(JToken) |
GetItem(Int32) | GetItem(Int32) | JContainer | Newtonsoft.Json.Linq.JProperty.GetItem (Int32) |
ClearItems() | ClearItems() | JContainer | Newtonsoft.Json.Linq.JProperty .ClearItems() |
ContainsItem(JToken) | ContainsItem(JToken) | JContainer | Newtonsoft.Json.Linq.JProperty .ContainsItem(JToken) |
ValidateToken(JToken,JToken) | ValidateToken(JToken,JToken) | JContainer | Newtonsoft.Json.Linq.JObject .ValidateToken(JToken,JToken) |
CloneToken() | CloneToken() | JValue | Newtonsoft.Json.Linq.JRaw.CloneToken() |
get_IsTransient() | get_IsTransient() | JsonSerializerTest+BaseClassVirtual | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .get_IsTransient() |
set_IsTransient(Boolean) | set_IsTransient(Boolean) | JsonSerializerTest+BaseClassVirtual | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .set_IsTransient(Boolean) |
get_Data() | get_Data() | JsonSerializerTest+ResponseWithNewGenericPropertyVirtual<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyOverride<T>.get_Data() |
set_Data(T) | set_Data(T) | JsonSerializerTest+ResponseWithNewGenericPropertyVirtual<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyOverride<T>.set_Data(T) |
get_VirtualMember() | get_VirtualMember() | JsonSerializerTest+BaseDataContractWithHidden | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildDataContractWit hHidden.get_VirtualMember() |
set_VirtualMember(String) | set_VirtualMember(String) | JsonSerializerTest+BaseDataContractWithHidden | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildDataContractWit hHidden.set_VirtualMember(String) |
Statistics
Stat | shouldCall | definedInBaseClass |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Critical Rule warning: Do not hide base class methods |
// To fix a violation of this rule, remove or rename the method, or change the parameter signature
// so that the method does not hide the base method.
// More on hiding vs. virtual usefulness here:
// http://www.artima.com/intv/nonvirtual.html
// http://blogs.msdn.com/b/ericlippert/archive/2008/05/21/method-hiding-apologia.aspx
warnif count > 0
// Define a lookup table indexing methods by their name including parameters signature.
let lookup = Methods.Where(m => !m.IsConstructor && !m.IsStatic && !m.IsGeneratedByCompiler)
.ToLookup(m1 => m1.Name)
from t in Application.Types
where !t.IsStatic && t.IsClass &&
// Discard classes deriving directly from System.Object
t.DepthOfInheritance > 1
where t.BaseClasses.Any()
// For each methods not overriding any methods (new slot),
// let's check if it hides by name some methods defined in base classe.
from m in t.InstanceMethods
where m.IsNewSlot && !m.IsExplicitInterfaceImpl && !m.IsGeneratedByCompiler
// Notice how lookup is used to quickly retrieve methods with same name as m.
// This makes the query 10 times faster than iterating each base methods to check their name.
let baseMethodsHidden = lookup[m.Name].Where(m1 => m1 != m && t.DeriveFrom(m1.ParentType))
where baseMethodsHidden.Count() > 0
select new { m, baseMethodsHidden }View Code Query or Rule Body
6 methods matched
methods | baseMethodsHidden | Full Name |
---|---|---|
get_IsTransient() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .get_IsTransient() |
set_IsTransient(Boolean) | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .set_IsTransient(Boolean) |
get_Data() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyVirtual<T>.get_Data() |
get_NewMember() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildDataContractWit hHidden.get_NewMember() |
get_VirtualWithDataMember() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+SubWithContractVirtu alProperties.get_VirtualWithDataMember() |
set_VirtualWithDataMember(String) | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+SubWithContractVirtu alProperties.set_VirtualWithDataMember (String) |
Statistics
Stat | baseMethodsHidden |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: A stateless class or structure might be turned into a static type |
// This rule indicates stateless types that might
// eventually be turned into static classes.
warnif count > 0 from t in JustMyCode.Types where
!t.IsStatic &&
!t.IsGeneric &&
t.InstanceFields.Count() == 0 &&
// Don't match:
// --> types that implement some interfaces.
t.NbInterfacesImplemented == 0 &&
// --> or classes that have sub-classes children.
t.NbChildren == 0 &&
// --> or classes that have a base class
((t.IsClass && t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1) ||
t.IsStructure)
select t
View Code Query or Rule Body
116 types matched
types | Full Name |
---|---|
Department+DepartmentMetadata | Newtonsoft.Json.Tests.LinqToSql .Department+DepartmentMetadata |
BulkInsertTask_DSL | Newtonsoft.Json.Tests.Schema .BulkInsertTask_DSL |
JsonSerializerTest+EnumerableArrayProper tyClass | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+EnumerableArrayPrope rtyClass |
JsonSerializerTest+ErroringTestClass | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ErroringTestClass |
SerializationErrorHandlingTests+Somethin gElse | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests+Somethi ngElse |
ErrorTestObject | Newtonsoft.Json.Tests.Serialization .ErrorTestObject |
ShouldSerializeTests+A | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests+A |
IncompatibleJsonAttributeClass | Newtonsoft.Json.Tests.TestObjects .IncompatibleJsonAttributeClass |
ConvertingJsonAndXmlTests | Newtonsoft.Json.Tests.Documentation .ConvertingJsonAndXmlTests |
JsonNetVsWindowsDataJsonTests | Newtonsoft.Json.Tests.Documentation .JsonNetVsWindowsDataJsonTests |
JsonSchemaTests | Newtonsoft.Json.Tests.Documentation .JsonSchemaTests |
LinqToJsonTests | Newtonsoft.Json.Tests.Documentation .LinqToJsonTests |
HttpClient | Newtonsoft.Json.Tests.Documentation .HttpClient |
SerializationTests | Newtonsoft.Json.Tests.Documentation .SerializationTests |
LogLevel | Newtonsoft.Json.Tests.Documentation .LogLevel |
Logger | Newtonsoft.Json.Tests.Documentation .Logger |
DeserializeFromBson | Newtonsoft.Json.Tests.Documentation .Samples.Bson.DeserializeFromBson |
DeserializeFromBsonCollection | Newtonsoft.Json.Tests.Documentation .Samples.Bson .DeserializeFromBsonCollection |
SerializeToBson | Newtonsoft.Json.Tests.Documentation .Samples.Bson.SerializeToBson |
ReadJsonWithJsonTextReader | Newtonsoft.Json.Tests.Documentation .Samples.Json.ReadJsonWithJsonTextReader |
WriteJsonWithJsonTextWriter | Newtonsoft.Json.Tests.Documentation .Samples.Json .WriteJsonWithJsonTextWriter |
Clone | Newtonsoft.Json.Tests.Documentation .Samples.Linq.Clone |
CreateJsonAnonymousObject | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonAnonymousObject |
CreateJsonCollectionInitializer | Newtonsoft.Json.Tests.Documentation .Samples.Linq .CreateJsonCollectionInitializer |
CreateJsonDeclaratively | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonDeclaratively |
CreateJsonDynamic | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonDynamic |
CreateJsonJTokenWriter | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonJTokenWriter |
CreateJsonManually | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonManually |
CreateReader | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateReader |
CreateWriter | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateWriter |
DeepEquals | Newtonsoft.Json.Tests.Documentation .Samples.Linq.DeepEquals |
DeserializeWithLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq.DeserializeWithLinq |
FromObject | Newtonsoft.Json.Tests.Documentation .Samples.Linq.FromObject |
JObjectProperties | Newtonsoft.Json.Tests.Documentation .Samples.Linq.JObjectProperties |
JValueCast | Newtonsoft.Json.Tests.Documentation .Samples.Linq.JValueCast |
JValueValue | Newtonsoft.Json.Tests.Documentation .Samples.Linq.JValueValue |
ModifyJson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ModifyJson |
ParseJsonAny | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ParseJsonAny |
ParseJsonArray | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ParseJsonArray |
ParseJsonObject | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ParseJsonObject |
QueryJson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJson |
QueryJsonDynamic | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJsonDynamic |
QueryJsonLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJsonLinq |
QueryJsonSelectToken | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJsonSelectToken |
QueryJsonSelectTokenWithLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq .QueryJsonSelectTokenWithLinq |
ReadJson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ReadJson |
ReadJTokenFromBson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ReadJTokenFromBson |
SerializeWithLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq.SerializeWithLinq |
ToObjectComplex | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToObjectComplex |
ToObjectGeneric | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToObjectGeneric |
ToObjectType | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToObjectType |
ToString | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToString |
ToStringJsonConverter | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToStringJsonConverter |
WriteJTokenToBson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.WriteJTokenToBson |
WriteToJsonFile | Newtonsoft.Json.Tests.Documentation .Samples.Linq.WriteToJsonFile |
CreateJsonSchemaManually | Newtonsoft.Json.Tests.Documentation .Samples.Schema.CreateJsonSchemaManually |
JsonSchemaParse | Newtonsoft.Json.Tests.Documentation .Samples.Schema.JsonSchemaParse |
JsonValidatingReaderAndSerializer | Newtonsoft.Json.Tests.Documentation .Samples.Schema .JsonValidatingReaderAndSerializer |
JTokenIsValid | Newtonsoft.Json.Tests.Documentation .Samples.Schema.JTokenIsValid |
JTokenIsValidWithMessages | Newtonsoft.Json.Tests.Documentation .Samples.Schema .JTokenIsValidWithMessages |
JTokenValidateWithEvent | Newtonsoft.Json.Tests.Documentation .Samples.Schema.JTokenValidateWithEvent |
LoadJsonSchemaFromFile | Newtonsoft.Json.Tests.Documentation .Samples.Schema.LoadJsonSchemaFromFile |
RefJsonSchemaResolver | Newtonsoft.Json.Tests.Documentation .Samples.Schema.RefJsonSchemaResolver |
SaveJsonSchemaToFile | Newtonsoft.Json.Tests.Documentation .Samples.Schema.SaveJsonSchemaToFile |
CustomContractResolver | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .CustomContractResolver |
CustomJsonConverter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.CustomJsonConverter |
CustomTraceWriter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.CustomTraceWriter |
DataContractAndDataMember | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DataContractAndDataMember |
DefaultValueAttributeIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DefaultValueAttributeIgnore |
DefaultValueHandlingIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DefaultValueHandlingIgnore |
DeserializeAnonymousType | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeAnonymousType |
DeserializeCollection | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeCollection |
DeserializeConstructorHandling | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeConstructorHandling |
DeserializeCustomCreationConverter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeCustomCreationConverter |
DeserializeDataSet | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.DeserializeDataSet |
DeserializeDictionary | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeDictionary |
DeserializeMissingMemberHandling | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeMissingMemberHandling |
DeserializeObject | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.DeserializeObject |
DeserializeObjectCreationHandling | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeObjectCreationHandling |
DeserializeWithJsonSerializerFromFile | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeWithJsonSerializerFromFile |
ErrorHandlingAttribute | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ErrorHandlingAttribute |
ErrorHandlingEvent | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.ErrorHandlingEvent |
JsonConverterAttributeClass | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonConverterAttributeClass |
JsonConverterAttributeProperty | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonConverterAttributeProperty |
JsonObjectAttributeOptIn | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonObjectAttributeOptIn |
JsonObjectAttributeOverrideIEnumerable | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonObjectAttributeOverrideIEnumerable |
JsonPropertyItemLevelSetting | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonPropertyItemLevelSetting |
JsonPropertyName | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.JsonPropertyName |
JsonPropertyOrder | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.JsonPropertyOrder |
JsonPropertyPropertyLevelSetting | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonPropertyPropertyLevelSetting |
JsonPropertyRequired | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.JsonPropertyRequired |
MaxDepth | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.MaxDepth |
NullValueHandlingIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .NullValueHandlingIgnore |
PopulateObject | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.PopulateObject |
PreserveReferencesHandlingObject | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .PreserveReferencesHandlingObject |
PropertyJsonIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.PropertyJsonIgnore |
ReferenceLoopHandlingIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ReferenceLoopHandlingIgnore |
SerializationCallbackAttributes | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializationCallbackAttributes |
SerializeCollection | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.SerializeCollection |
SerializeConditionalProperty | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializeConditionalProperty |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Non-static classes should be instantiated or turned to static |
// Notice that classes only instantiated through reflection, like plug-in root classes
// are matched by this rules.
warnif count > 0
from t in JustMyCode.Types
where t.IsClass &&
//!t.IsPublic && // if you are developing a framework,
// you might not want to match public classes
!t.IsStatic &&
!t.IsAttributeClass && // Attributes class are never seen as instantiated
!t.DeriveFrom("System.MarshalByRefObject".AllowNoMatch()) // Types instantiated through remoting infrastructure
// find the first constructor of t called
let ctorCalled = t.Constructors.FirstOrDefault(ctor => ctor.NbMethodsCallingMe > 0)
// match t if none of its constructors is called.
where ctorCalled == null
select new { t, t.Visibility }View Code Query or Rule Body
366 types matched
types | Visibility | Full Name |
---|---|---|
CollectionWrapper<T> | Internal | Newtonsoft.Json.Utilities .CollectionWrapper<T> |
DictionaryWrapper<TKey,TValue> | Internal | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> |
ExpressionValueProvider | Public | Newtonsoft.Json.Serialization .ExpressionValueProvider |
DemoTests | Public | Newtonsoft.Json.Tests.DemoTests |
DemoTests+PersonDemo | Public | Newtonsoft.Json.Tests .DemoTests+PersonDemo |
DemoTests+House | Public | Newtonsoft.Json.Tests.DemoTests+House |
DemoTests+House1 | Public | Newtonsoft.Json.Tests.DemoTests+House1 |
DemoTests+House2 | Public | Newtonsoft.Json.Tests.DemoTests+House2 |
DemoTests+House4 | Public | Newtonsoft.Json.Tests.DemoTests+House4 |
DemoTests+House5 | Public | Newtonsoft.Json.Tests.DemoTests+House5 |
DataServicesTestDatabaseEntities | Public | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities |
ExceptionTests | Public | Newtonsoft.Json.Tests.ExceptionTests |
JsonArrayAttributeTests | Public | Newtonsoft.Json.Tests .JsonArrayAttributeTests |
JsonConvertTest | Public | Newtonsoft.Json.Tests.JsonConvertTest |
JsonConvertTest+Nest | Public | Newtonsoft.Json.Tests .JsonConvertTest+Nest |
JsonTextReaderTest | Public | Newtonsoft.Json.Tests.JsonTextReaderTest |
JsonTextWriterTest | Public | Newtonsoft.Json.Tests.JsonTextWriterTest |
JsonValidatingReaderTests | Public | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
PerformanceTests | Public | Newtonsoft.Json.Tests.PerformanceTests |
BsonReaderTests | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
BsonReaderTests+BigIntegerTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BigIntegerTestClass |
BsonReaderTests+RegexTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+RegexTestClass |
BsonReaderTests+Cat | Private | Newtonsoft.Json.Tests.Bson .BsonReaderTests+Cat |
BsonReaderTests+BytesTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BytesTestClass |
BsonReaderTests+ObjectTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+ObjectTestClass |
BsonWriterTests | Public | Newtonsoft.Json.Tests.Bson .BsonWriterTests |
BinaryConverterTests | Public | Newtonsoft.Json.Tests.Converters .BinaryConverterTests |
CustomCreationConverterTests | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests |
CustomCreationConverterTests+MyThingConv erter | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyThingCon verter |
DataSetConverterTests | Public | Newtonsoft.Json.Tests.Converters .DataSetConverterTests |
DataTableConverterTests | Public | Newtonsoft.Json.Tests.Converters .DataTableConverterTests |
ExpandoObjectConverterTests | Public | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests |
IsoDateTimeConverterTests | Public | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests |
JavaScriptDateTimeConverterTests | Public | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests |
DateIntConverter | Public | Newtonsoft.Json.Tests.Converters .DateIntConverter |
KeyValuePairConverterTests | Public | Newtonsoft.Json.Tests.Converters .KeyValuePairConverterTests |
ObjectIdConverterTests | Public | Newtonsoft.Json.Tests.Converters .ObjectIdConverterTests |
RegexConverterTests | Public | Newtonsoft.Json.Tests.Converters .RegexConverterTests |
StringEnumConverterTests | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests |
StringEnumConverterTests+Bucket | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+Bucket |
VersionConverterTests | Public | Newtonsoft.Json.Tests.Converters .VersionConverterTests |
XmlNodeConverterTest | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest |
Department+DepartmentMetadata | Public | Newtonsoft.Json.Tests.LinqToSql .Department+DepartmentMetadata |
DepartmentConverter | Public | Newtonsoft.Json.Tests.LinqToSql .DepartmentConverter |
GuidByteArrayConverter | Public | Newtonsoft.Json.Tests.LinqToSql .GuidByteArrayConverter |
LinqToSqlClassesDataContext | Public | Newtonsoft.Json.Tests.LinqToSql .LinqToSqlClassesDataContext |
Person+PersonMetadata | Public | Newtonsoft.Json.Tests.LinqToSql .Person+PersonMetadata |
Role+RoleMetadata | Public | Newtonsoft.Json.Tests.LinqToSql .Role+RoleMetadata |
LinqToSqlClassesSerializationTests | Public | Newtonsoft.Json.Tests.LinqToSql .LinqToSqlClassesSerializationTests |
ExtensionsTests | Public | Newtonsoft.Json.Tests.Schema .ExtensionsTests |
JsonSchemaBuilderTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaBuilderTests |
JsonSchemaGeneratorTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests |
JsonSchemaGeneratorTests+X | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+X |
JsonSchemaGeneratorTests+Y | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+Y |
NullableInt32TestClass | Public | Newtonsoft.Json.Tests.Schema .NullableInt32TestClass |
Workspace | Public | Newtonsoft.Json.Tests.Schema.Workspace |
ControlFlowItem | Public | Newtonsoft.Json.Tests.Schema .ControlFlowItem |
Task | Public | Newtonsoft.Json.Tests.Schema.Task |
DataFlowTask_DSL | Public | Newtonsoft.Json.Tests.Schema .DataFlowTask_DSL |
SequenceContainer_DSL | Public | Newtonsoft.Json.Tests.Schema .SequenceContainer_DSL |
BulkInsertTask_DSL | Public | Newtonsoft.Json.Tests.Schema .BulkInsertTask_DSL |
JsonSchemaModelBuilderTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaModelBuilderTests |
JsonSchemaNodeTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaNodeTests |
JsonSchemaSpecTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaSpecTests |
JsonSchemaTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaTests |
CamelCasePropertyNamesContractResolverTe sts | Public | Newtonsoft.Json.Tests.Serialization .CamelCasePropertyNamesContractResolverT ests |
ConstructorHandlingTests | Public | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests |
ContractResolverTests | Public | Newtonsoft.Json.Tests.Serialization .ContractResolverTests |
DefaultValueHandlingTests | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests |
DefaultValueHandlingTests+MyClass | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+MyClass |
DefaultValueHandlingTests+DefaultHandler | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+DefaultHandle r |
TestClass | Public | Newtonsoft.Json.Tests.Serialization .TestClass |
DefaultValueHandlingDeserializeHolder | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializeHolder |
DefaultValueHandlingDeserializePopulate | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializePopulate |
DynamicConcreteTests | Public | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests |
AbstractWithNoConcrete | Public | Newtonsoft.Json.Tests.Serialization .AbstractWithNoConcrete |
DynamicTests | Public | Newtonsoft.Json.Tests.Serialization .DynamicTests |
DynamicTests+DictionaryDynamicObject | Public | Newtonsoft.Json.Tests.Serialization .DynamicTests+DictionaryDynamicObject |
ErrorSettingDynamicObject | Public | Newtonsoft.Json.Tests.Serialization .ErrorSettingDynamicObject |
EntitiesSerializationTests | Public | Newtonsoft.Json.Tests.Serialization .EntitiesSerializationTests |
ExtensionDataTests | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests |
ExtensionDataTests+ExtendedObject | Private | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtendedObject |
ExtensionDataTests+CustomerInvoice | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+CustomerInvoice |
ExtensionDataTests+ExtensionDataTestClas s | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss |
ExtensionDataTests+ExtensionDataAttribut esInheritanceTestClass | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClassWithNonDefaultConstructo r | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClassWithNonDefaultConstruct or |
ExtensionDataTests+PublicNoReadExtension DataAttributeTestClass | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoReadExtensio nDataAttributeTestClass |
ExtensionDataTests+PublicJTokenExtension DataAttributeTestClass | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicJTokenExtensio nDataAttributeTestClass |
TaskController | Public | Newtonsoft.Json.Tests.Serialization .TaskController |
HasSettableProperty | Public | Newtonsoft.Json.Tests.Serialization .HasSettableProperty |
DependencyInjectionTests | Public | Newtonsoft.Json.Tests.Serialization .DependencyInjectionTests |
FSharpTests | Public | Newtonsoft.Json.Tests.Serialization .FSharpTests |
ImmutableCollectionsTests | Public | Newtonsoft.Json.Tests.Serialization .ImmutableCollectionsTests |
JsonPropertyCollectionTests | Public | Newtonsoft.Json.Tests.Serialization .JsonPropertyCollectionTests |
JsonSerializerTest | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JsonSerializerTest+Link | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link |
JsonSerializerTest+CommentTestObject | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CommentTestObject |
JsonSerializerTest+BaseWithoutContract | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseWithoutContract |
JsonSerializerTest+ConstructorAndDefault ValueAttributeTestClass | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndDefaul tValueAttributeTestClass |
JsonSerializerTest+ConstructorAndRequire dTestClass | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndRequir edTestClass |
Statistics
Stat | Visibility |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods should be declared static if possible |
warnif count > 0
// When an instance method can be safely declared as static you should declare it as static.
// Since it doesn't use any instance data and method of its type and base-types,
// you should consider if such a method could be moved to a static utility class
// or if it is strongly related enough to its current declaring type to stay in it.
//
// Turning an instance method into a static method is a micro performance optimization
// since a static method is a bit cheaper to invoke than an instance method.
from t in JustMyCode.Types.Where(t =>
!t.IsStatic && !t.IsInterface &&
!t.IsEnumeration && !t.IsDelegate &&
!t.IsGeneratedByCompiler)
let methodsThatCanBeMadeStatic =
from m in t.InstanceMethods
// An instance method can be turned to static if it is not virtual,
// not using the this reference and also, not using
// any of its class or base classes instance fields or instance methods.
where !m.IsAbstract && !m.IsVirtual &&
!m.AccessThis && !m.IsExplicitInterfaceImpl &&
// Optimization: Using FirstOrDefault() avoid to check all members,
// as soon as one member is found
// we know the method m cannot be made static.
m.MembersUsed.FirstOrDefault(
mUsed => !mUsed.IsStatic &&
(mUsed.ParentType == t ||
t.DeriveFrom(mUsed.ParentType))
) == null
select m
from m in methodsThatCanBeMadeStatic
let staticFieldsUsed = m.ParentType.StaticFields.UsedBy(m).Where(f => !f.IsGeneratedByCompiler)
select new { m, staticFieldsUsed }View Code Query or Rule Body
1,730 methods matched
methods | staticFieldsUsed | Full Name |
---|---|---|
InternalWriteRaw() | 0 field | Newtonsoft.Json.JsonWriter .InternalWriteRaw() |
ValidIdentifierChar(Char) | 0 field | Newtonsoft.Json.JsonTextReader .ValidIdentifierChar(Char) |
IsPropertyDefinied(JsonSchemaModel ,String) | 0 field | Newtonsoft.Json.JsonValidatingReader .IsPropertyDefinied(JsonSchemaModel ,String) |
GetRequiredProperties(JsonSchemaModel) | 0 field | Newtonsoft.Json .JsonValidatingReader+SchemaScope .GetRequiredProperties(JsonSchemaModel) |
CalculateSize(Int32) | 0 field | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSize(Int32) |
CalculateSizeWithLength(Int32,Boolean) | 0 field | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSizeWithLength(Int32,Boolean) |
BytesInSequence(Byte) | 4 fields | Newtonsoft.Json.Bson.BsonReader .BytesInSequence(Byte) |
ReadByteArray(JsonReader) | 0 field | Newtonsoft.Json.Converters .BinaryConverter.ReadByteArray (JsonReader) |
HasFlag(RegexOptions,RegexOptions) | 0 field | Newtonsoft.Json.Converters .RegexConverter.HasFlag(RegexOptions ,RegexOptions) |
ReadRegexString(JsonReader) | 0 field | Newtonsoft.Json.Converters .RegexConverter.ReadRegexString (JsonReader) |
WrapXml(Object) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.WrapXml(Object) |
PushParentNamespaces(IXmlNode ,XmlNamespaceManager) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.PushParentNamespaces (IXmlNode,XmlNamespaceManager) |
ResolveFullName(IXmlNode ,XmlNamespaceManager) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.ResolveFullName (IXmlNode,XmlNamespaceManager) |
IsArray(IXmlNode) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.IsArray(IXmlNode) |
AddJsonArrayAttribute(IXmlElement ,IXmlDocument) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.AddJsonArrayAttribute (IXmlElement,IXmlDocument) |
CreateElement(String,IXmlDocument,String ,XmlNamespaceManager) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.CreateElement(String ,IXmlDocument,String,XmlNamespaceManager ) |
IsNamespaceAttribute(String,String&) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.IsNamespaceAttribute (String,String&) |
ValueAttributes(IEnumerable<IXmlNode>) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.ValueAttributes (IEnumerable<IXmlNode>) |
GenerateCreateMethodCallIL(MethodBase ,ILGenerator,Int32) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateMethodCallIL(MethodBase ,ILGenerator,Int32) |
GenerateCreateDefaultConstructorIL(Type ,ILGenerator) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateDefaultConstructorIL(Type ,ILGenerator) |
GenerateCreateGetPropertyIL(PropertyInfo ,ILGenerator) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateGetPropertyIL (PropertyInfo,ILGenerator) |
GenerateCreateGetFieldIL(FieldInfo ,ILGenerator) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateGetFieldIL(FieldInfo ,ILGenerator) |
EnsureCastExpression(Expression,Type) | 0 field | Newtonsoft.Json.Utilities .ExpressionReflectionDelegateFactory .EnsureCastExpression(Expression,Type) |
UnescapeReference(String) | 0 field | Newtonsoft.Json.Schema.JsonSchemaBuilder .UnescapeReference(String) |
ProcessType(JToken) | 0 field | Newtonsoft.Json.Schema.JsonSchemaBuilder .ProcessType(JToken) |
GetTitle(Type) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetTitle(Type) |
GetDescription(Type) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetDescription(Type ) |
AddNullType(JsonSchemaType,Required) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.AddNullType (JsonSchemaType,Required) |
HasFlag(DefaultValueHandling ,DefaultValueHandling) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.HasFlag (DefaultValueHandling ,DefaultValueHandling) |
GetJsonSchemaType(Type,Required) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetJsonSchemaType (Type,Required) |
WriteType(String,JsonWriter ,JsonSchemaType) | 0 field | Newtonsoft.Json.Schema.JsonSchemaWriter .WriteType(String,JsonWriter ,JsonSchemaType) |
WritePropertyIfNotNull(JsonWriter,String ,Object) | 0 field | Newtonsoft.Json.Schema.JsonSchemaWriter .WritePropertyIfNotNull(JsonWriter ,String,Object) |
get_DynamicCodeGeneration() | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .get_DynamicCodeGeneration() |
ShouldSerializeEntityMember(MemberInfo) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .ShouldSerializeEntityMember(MemberInfo) |
GetAttributeConstructor(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetAttributeConstructor(Type) |
GetParametrizedConstructor(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetParametrizedConstructor(Type) |
GetDefaultCreator(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetDefaultCreator(Type) |
GetClassHierarchyForType(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetClassHierarchyForType(Type) |
CreateShouldSerializeTest(MemberInfo) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .CreateShouldSerializeTest(MemberInfo) |
SetIsSpecifiedActions(JsonProperty ,MemberInfo,Boolean) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .SetIsSpecifiedActions(JsonProperty ,MemberInfo,Boolean) |
GetMappings(Object) | 0 field | Newtonsoft.Json.Serialization .DefaultReferenceResolver.GetMappings (Object) |
GetTraceEventType(TraceLevel) | 0 field | Newtonsoft.Json.Serialization .DiagnosticsTraceWriter .GetTraceEventType(TraceLevel) |
GetTokenValue<T>(Object) | 0 field | Newtonsoft.Json.Serialization .JsonFormatterConverter.GetTokenValue<T> (Object) |
CreateJToken(JsonReader,JsonContract) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateJToken(JsonReader,JsonContract) |
GetExpectedDescription(JsonContract) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .GetExpectedDescription(JsonContract) |
CheckedRead(JsonReader) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CheckedRead(JsonReader) |
HasNoDefinedType(JsonContract) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .HasNoDefinedType(JsonContract) |
HasFlag(DefaultValueHandling ,DefaultValueHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.HasFlag (DefaultValueHandling ,DefaultValueHandling) |
ReadForType(JsonReader,JsonContract ,Boolean) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadForType(JsonReader,JsonContract ,Boolean) |
SetPropertyPresence(JsonReader ,JsonProperty,Dictionary<JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .SetPropertyPresence(JsonReader ,JsonProperty,Dictionary<JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) |
ResolveIsReference(JsonContract ,JsonProperty,JsonContainerContract ,JsonProperty) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .ResolveIsReference(JsonContract ,JsonProperty,JsonContainerContract ,JsonProperty) |
HasFlag(DefaultValueHandling ,DefaultValueHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter.HasFlag (DefaultValueHandling ,DefaultValueHandling) |
HasFlag(PreserveReferencesHandling ,PreserveReferencesHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter.HasFlag (PreserveReferencesHandling ,PreserveReferencesHandling) |
HasFlag(TypeNameHandling ,TypeNameHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter.HasFlag (TypeNameHandling,TypeNameHandling) |
IsMultiContent(Object) | 0 field | Newtonsoft.Json.Linq.JContainer .IsMultiContent(Object) |
CreateFromContent(Object) | 0 field | Newtonsoft.Json.Linq.JContainer .CreateFromContent(Object) |
EnsureValue(Object) | 0 field | Newtonsoft.Json.Linq.JContainer .EnsureValue(Object) |
GetKeyForItem(JToken) | 0 field | Newtonsoft.Json.Linq .JPropertyKeyedCollection.GetKeyForItem (JToken) |
GetEndToken(JContainer) | 0 field | Newtonsoft.Json.Linq.JTokenReader .GetEndToken(JContainer) |
IsValid(Int32,Int32,Boolean) | 0 field | Newtonsoft.Json.Linq.JsonPath .ArraySliceFilter.IsValid(Int32,Int32 ,Boolean) |
GetOffset(DateTime,DateFormatHandling) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .GetOffset(DateTime,DateFormatHandling) |
BytesToHex(Byte[],Boolean) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .BytesToHex(Byte[],Boolean) |
HexToBytes(String) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .HexToBytes(String) |
TestSetup() | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .TestSetup() |
EscapeJson(String) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .EscapeJson(String) |
JsonConverter() | 0 field | Newtonsoft.Json.Tests.DemoTests .JsonConverter() |
GenerateSchema() | 0 field | Newtonsoft.Json.Tests.DemoTests .GenerateSchema() |
SerializationGuide() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializationGuide() |
SerializationBasics2() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializationBasics2() |
DeserializationBasics1() | 0 field | Newtonsoft.Json.Tests.DemoTests .DeserializationBasics1() |
DeserializationBasics2() | 0 field | Newtonsoft.Json.Tests.DemoTests .DeserializationBasics2() |
SerializeReferencesByValue() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializeReferencesByValue() |
SerializeReferencesWithMetadata() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializeReferencesWithMetadata() |
RoundtripTypesAndReferences() | 0 field | Newtonsoft.Json.Tests.DemoTests .RoundtripTypesAndReferences() |
SerializeAttributes() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializeAttributes() |
JsonSerializationException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonSerializationException() |
JsonWriterException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonWriterException() |
JsonReaderException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonReaderException() |
JsonSchemaException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonSchemaException() |
IsReferenceTest() | 0 field | Newtonsoft.Json.Tests .JsonArrayAttributeTests.IsReferenceTest () |
NullValueHandlingTest() | 0 field | Newtonsoft.Json.Tests .JsonArrayAttributeTests .NullValueHandlingTest() |
DefaultValueHandlingTest() | 0 field | Newtonsoft.Json.Tests .JsonArrayAttributeTests .DefaultValueHandlingTest() |
DefaultSettings() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings() |
DefaultSettings_Example() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Example() |
DefaultSettings_Override() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override() |
DefaultSettings_Override_JsonConverterOr der() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override_JsonConverterO rder() |
DeserializeObject_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_EmptyString() |
DeserializeObject_Integer() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer() |
DeserializeObject_Integer_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer_EmptyString() |
DeserializeObject_Decimal_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Decimal_EmptyString() |
DeserializeObject_DateTime_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_DateTime_EmptyString( ) |
EscapeJavaScriptString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString() |
EscapeJavaScriptString_UnicodeLinefeeds( ) | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString_UnicodeLinefeeds () |
ToStringInvalid() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .ToStringInvalid() |
GuidToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .GuidToString() |
EnumToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .EnumToString() |
ObjectToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .ObjectToString() |
TestInvalidStrings() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .TestInvalidStrings() |
DeserializeValueObjects() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeValueObjects() |
FloatToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .FloatToString() |
Statistics
Stat | staticFieldsUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Constructor should not call a virtual methods |
// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.
warnif count > 0
from t in Application.Types where
t.IsClass &&
!t.IsGeneratedByCompiler &&
!t.IsSealed
from ctor in t.Constructors
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
where mCalled.IsVirtual &&
(mCalled.ParentType == t ||
t.DeriveFrom(mCalled.ParentType))
select mCalled
where virtualMethodsCalled.Count() > 0
select new { ctor ,
virtualMethodsCalled,
// If there is no derived type, it might be
// an opportunity to mark t as sealed.
t.DerivedTypes }View Code Query or Rule Body
11 methods matched
methods | virtualMethodsCalled | DerivedTypes | Full Name |
---|---|---|---|
.ctor(JContainer) | 1 method | 4 types | Newtonsoft.Json.Linq.JContainer..ctor (JContainer) |
.ctor(Object) | 1 method | 0 type | Newtonsoft.Json.Linq.JArray..ctor(Object ) |
.ctor(String,Object) | 1 method | 0 type | Newtonsoft.Json.Linq.JConstructor..ctor (String,Object) |
.ctor(Object) | 1 method | 0 type | Newtonsoft.Json.Linq.JObject..ctor (Object) |
.ctor(JValue) | 1 method | 1 type | Newtonsoft.Json.Linq.JValue..ctor(JValue ) |
.ctor(IEnumerable<KeyValuePair<String ,String>>) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryWithNoDefa ultConstructor..ctor(IEnumerable <KeyValuePair<String,String>>) |
.ctor (JsonSerializerTest+ModelStateDictionary <T>) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ModelStateDictionary <T>..ctor (JsonSerializerTest+ModelStateDictionary <T>) |
.ctor(Decimal) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .DecimalTest..ctor(Decimal) |
.ctor(IEnumerable<T>) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorWithIEnumerableCtorList<T>. .ctor(IEnumerable<T>) |
.ctor() | 2 methods | 0 type | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet..ctor() |
.ctor() | 2 methods | 0 type | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersDataTable. .ctor() |
Statistics
Stat | virtualMethodsCalled | DerivedTypes |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Don't assign static fields from instance methods |
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where
f.IsStatic &&
!f.IsLiteral &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
// Contract API define such a insideContractEvaluation static field
f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }View Code Query or Rule Body
3 fields matched
fields | assignedBy | Full Name |
---|---|---|
_sharedContractCache | 1 method | Newtonsoft.Json.Serialization .DefaultContractResolver ._sharedContractCache |
y | 2 methods | Newtonsoft.Json.Tests.Serialization .StaticTestClass.y |
StringField | 1 method | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s+StaticTestClass.StringField |
Statistics
Stat | assignedBy |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid empty interfaces |
warnif count > 0 from t in JustMyCode.Types where
t.IsInterface &&
t.NbMethods == 0
select new { t, t.TypesThatImplementMe }
// Interfaces define members that provide a behavior
// or usage contract. The functionality described by
// the interface can be adopted by any type,
// regardless of where the type appears in the
// inheritance hierarchy. A type implements an
// interface by providing implementations for the
// interface's members. An empty interface does not
// define any members, and as such, does not define
// a contract that can be implemented.
// If your design includes empty interfaces that
// types are expected to implement, you are probably
// using an interface as a marker, or a way of
// identifying a group of types. If this identification
// will occur at runtime, the correct way to accomplish
// this is to use a custom attribute. Use the presence
// or absence of the attribute, or the attribute's
// properties, to identify the target types. If the
// identification must occurs at compile time, then using
// an empty interface is acceptable.View Code Query or Rule Body
2 types matched
types | TypesThatImplementMe | Full Name |
---|---|---|
IErrorPerson2 | 0 type | Newtonsoft.Json.Tests.Serialization .IErrorPerson2 |
ISomeBase | 2 types | Newtonsoft.Json.Tests.Serialization .ISomeBase |
Statistics
Stat | TypesThatImplementMe |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
3110
Design |
|
![]() | Rule warning: Avoid custom delegates |
// Prefer using one of the standard generic delegate type in
// Predicate<T> Func<T0,T1,..,TResult> Action<T0,T1,..>
// instead of creating your own delegate type.
// Not only the code using these custom delegates will become clearer,
// but you'll be relieved from the maintenance of these delegate types.
//
// Notice that delegate that are consumed by DllImport extern methods
// must not be converted, else this could provoke marshalling issues.
warnif count > 0
from t in Application.Types where t.IsDelegate
let invokeMethod = (from m in t.Methods where m.SimpleName == "Invoke" select m).Single()
let signature1 = invokeMethod.Name.Substring(invokeMethod.SimpleName.Length, invokeMethod.Name.Length - invokeMethod.SimpleName.Length)
// 'ref' and 'out' parameters canot be supported
where !signature1.Contains("&")
let signature2 = signature1.Replace("(","<").Replace(")",">")
let signature3 = signature2 == "<>" ? "" : signature2
let resultTypeName = invokeMethod.ReturnType == null ? "????" :
invokeMethod.ReturnType.FullName == "System.Void" ? "" :
invokeMethod.ReturnType.Name
let replaceWith = resultTypeName == "Boolean" ?
"Predicate" + signature3 : resultTypeName == "" ?
"Action" + signature3 :
"Func" + signature3.Replace(">", "," + resultTypeName + ">")
select new { t, replaceWith }View Code Query or Rule Body
10 types matched
types | replaceWith | Full Name |
---|---|---|
DynamicProxyMetaObject<T>+Fallback | Func<DynamicMetaObject,DynamicMetaObject> | Newtonsoft.Json.Utilities .DynamicProxyMetaObject<T>+Fallback |
MethodCall<T,TResult> | Func<T,Object[],????> | Newtonsoft.Json.Utilities.MethodCall<T ,TResult> |
Creator<T> | Func | Newtonsoft.Json.Utilities.Creator<T> |
ValidationEventHandler | Action<Object,ValidationEventArgs> | Newtonsoft.Json.Schema .ValidationEventHandler |
SerializationCallback | Action<Object,StreamingContext> | Newtonsoft.Json.Serialization .SerializationCallback |
SerializationErrorCallback | Action<Object,StreamingContext,ErrorContext> | Newtonsoft.Json.Serialization .SerializationErrorCallback |
ExtensionDataSetter | Action<Object,String,Object> | Newtonsoft.Json.Serialization .ExtensionDataSetter |
ExtensionDataGetter | Func<Object,IEnumerable<T>> | Newtonsoft.Json.Serialization .ExtensionDataGetter |
ObjectConstructor<T> | Func<Object[],Object> | Newtonsoft.Json.Serialization .ObjectConstructor<T> |
CustomerDataSet+CustomersRowChangeEventH andler | Action<Object,CustomerDataSet+CustomersRowChangeEvent> | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersRowChangeEvent Handler |
Statistics
Stat | replaceWith |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Types with disposable instance fields must be disposable |
warnif count > 0
let iDisposable = ThirdParty.Types.WithFullName("System.IDisposable").FirstOrDefault()
where iDisposable != null // iDisposable can be null if the code base doesn't use at all System.IDisposable
from t in Application.Types where
!t.Implement(iDisposable) &&
!t.IsGeneratedByCompiler
let instanceFieldsDisposable =
t.InstanceFields.Where(f => f.FieldType != null &&
f.FieldType.Implement(iDisposable))
where instanceFieldsDisposable.Count() > 0
select new { t, instanceFieldsDisposable }View Code Query or Rule Body
7 types matched
types | instanceFieldsDisposable | Full Name |
---|---|---|
JsonValidatingReader+SchemaScope | 1 field | Newtonsoft.Json .JsonValidatingReader+SchemaScope |
BsonBinaryWriter | 1 field | Newtonsoft.Json.Bson.BsonBinaryWriter |
Base64Encoder | 1 field | Newtonsoft.Json.Utilities.Base64Encoder |
DictionaryWrapper<TKey,TValue >+DictionaryEnumerator<TEnumeratorKey ,TEnumeratorValue> | 1 field | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue >+DictionaryEnumerator<TEnumeratorKey ,TEnumeratorValue> |
JsonSchemaWriter | 1 field | Newtonsoft.Json.Schema.JsonSchemaWriter |
AutofacContractResolver | 1 field | Newtonsoft.Json.Tests.Serialization .AutofacContractResolver |
ComplexItem | 1 field | Newtonsoft.Json.Tests.Serialization .ComplexItem |
Statistics
Stat | instanceFieldsDisposable |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Classes that are candidate to be turned into structures |
//
// CAUTION: Before applying this rule, make sure to understand
// the implication of transforming a class into a structure.
// http://msdn.microsoft.com/en-us/library/aa664471(v=vs.71).aspx
//
// Int32, Double or Boolean are structures and not classes.
// Structure are particularly suited to implement lightweight values.
// Hence a class is candidate to be turned into a structure
// when its instances are lightweight values.
//
warnif count > 0 from t in JustMyCode.Types where
t.IsClass &&
!t.IsGeneratedByCompiler &&
!t.IsStatic &&
t.SizeOfInst > 0 &&
t.SizeOfInst <= 16 && // Structure instance must not be too big,
// else it degrades performance.
t.NbChildren == 0 && // Must not have children
// Must not implement interfaces to avoid boxing mismatch
// when structures implements interfaces.
t.InterfacesImplemented.Count() == 0 &&
// Must have no base class
t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1
select new { t, t.SizeOfInst, t.InstanceFields } // Must derive directly from System.Object
// && t.IsSealed <-- You might want to add this condition
// to restraint the set.
// && t.IsImmutable <-- Structures should be immutable type.
// && t.!IsPublic <-- You might want to add this condition if
// you are developping a framework with classes
// that are intended to be sub-classed by
// your clients.
View Code Query or Rule Body
320 types matched
types | Size of instance | InstanceFields | Full Name |
---|---|---|---|
BsonBinaryWriter | 12 | 3 fields | Newtonsoft.Json.Bson.BsonBinaryWriter |
BsonObjectId | 4 | 1 field | Newtonsoft.Json.Bson.BsonObjectId |
BsonReader+ContainerContext | 9 | 3 fields | Newtonsoft.Json.Bson .BsonReader+ContainerContext |
BsonProperty | 8 | 2 fields | Newtonsoft.Json.Bson.BsonProperty |
Base64Encoder | 16 | 4 fields | Newtonsoft.Json.Utilities.Base64Encoder |
BidirectionalDictionary<TFirst,TSecond> | 16 | 4 fields | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> |
TypeInformation | 8 | 2 fields | Newtonsoft.Json.Utilities .TypeInformation |
ReflectionMember | 12 | 3 fields | Newtonsoft.Json.Utilities .ReflectionMember |
ReflectionObject | 8 | 2 fields | Newtonsoft.Json.Utilities .ReflectionObject |
EnumValue<T> | 8 | 2 fields | Newtonsoft.Json.Utilities.EnumValue<T> |
ImmutableCollectionsUtils+ImmutableColle ctionTypeInfo | 12 | 3 fields | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils+ImmutableColl ectionTypeInfo |
StringBuffer | 8 | 2 fields | Newtonsoft.Json.Utilities.StringBuffer |
ThreadSafeStore<TKey,TValue> | 12 | 3 fields | Newtonsoft.Json.Utilities .ThreadSafeStore<TKey,TValue> |
JsonSchemaGenerator+TypeSchema | 8 | 2 fields | Newtonsoft.Json.Schema .JsonSchemaGenerator+TypeSchema |
JsonSchemaModelBuilder | 12 | 3 fields | Newtonsoft.Json.Schema .JsonSchemaModelBuilder |
JsonSchemaResolver | 4 | 1 field | Newtonsoft.Json.Schema .JsonSchemaResolver |
JsonSchemaWriter | 8 | 2 fields | Newtonsoft.Json.Schema.JsonSchemaWriter |
JPath | 12 | 3 fields | Newtonsoft.Json.Linq.JsonPath.JPath |
DemoTests+HtmlColor | 12 | 3 fields | Newtonsoft.Json.Tests .DemoTests+HtmlColor |
DemoTests+PersonDemo | 12 | 3 fields | Newtonsoft.Json.Tests .DemoTests+PersonDemo |
DemoTests+Session | 12 | 2 fields | Newtonsoft.Json.Tests.DemoTests+Session |
DemoTests+City | 8 | 2 fields | Newtonsoft.Json.Tests.DemoTests+City |
JsonConvertTest+Nest | 4 | 1 field | Newtonsoft.Json.Tests .JsonConvertTest+Nest |
Image | 16 | 4 fields | Newtonsoft.Json.Tests.Image |
LargeRecursiveTestClass | 12 | 3 fields | Newtonsoft.Json.Tests .LargeRecursiveTestClass |
Address | 16 | 3 fields | Newtonsoft.Json.Tests.Address |
SimpleObject | 16 | 4 fields | Newtonsoft.Json.Tests.SimpleObject |
BsonReaderTests+BigIntegerTestClass | 8 | 1 field | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BigIntegerTestClass |
BsonReaderTests+RegexTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Bson .BsonReaderTests+RegexTestClass |
BsonReaderTests+Zoo | 4 | 1 field | Newtonsoft.Json.Tests.Bson .BsonReaderTests+Zoo |
BsonReaderTests+BytesTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BytesTestClass |
BsonReaderTests+ObjectTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Bson .BsonReaderTests+ObjectTestClass |
BsonWriterTests+RegexTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Bson .BsonWriterTests+RegexTestClass |
BsonWriterTests+GuidTestClass | 16 | 1 field | Newtonsoft.Json.Tests.Bson .BsonWriterTests+GuidTestClass |
BsonWriterTests+StringTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Bson .BsonWriterTests+StringTestClass |
BinaryConverterTests+ByteArrayClass | 8 | 2 fields | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+ByteArrayClass |
BinaryConverterTests+BinaryClass | 8 | 2 fields | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+BinaryClass |
BinaryConverterTests+SqlBinaryClass | 11 | 3 fields | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+SqlBinaryClass |
CustomCreationConverterTests+MyClass | 8 | 2 fields | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyClass |
ExpandoObjectConverterTests+ExpandoConta iner | 12 | 3 fields | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests+ExpandoCont ainer |
ConverterObject | 12 | 3 fields | Newtonsoft.Json.Tests.Converters .ConverterObject |
ObjectIdConverterTests+ObjectIdTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Converters .ObjectIdConverterTests+ObjectIdTestClas s |
RegexConverterTests+RegexTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Converters .RegexConverterTests+RegexTestClass |
StringEnumConverterTests+EnumClass | 14 | 3 fields | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+EnumClass |
StringEnumConverterTests+EnumContainer<T > | 4 | 1 field | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+EnumContainer <T> |
StringEnumConverterTests+NegativeEnumCla ss | 8 | 2 fields | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+NegativeEnumCl ass |
StringEnumConverterTests+Bucket | 4 | 1 field | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+Bucket |
VersionClass | 16 | 4 fields | Newtonsoft.Json.Tests.Converters .VersionClass |
XmlNodeConverterTest+DecimalContainer | 16 | 1 field | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+DecimalContainer |
XmlNodeConverterTest+DateTimeOffsetConta iner | 10 | 1 field | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+DateTimeOffsetCont ainer |
XmlNodeConverterTest+TestComplexArrayCla ss | 8 | 2 fields | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+TestComplexArrayCl ass |
XmlNodeConverterTest+NullableXml | 12 | 3 fields | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml |
Person+PersonMetadata | 4 | 1 field | Newtonsoft.Json.Tests.LinqToSql .Person+PersonMetadata |
JsonSchemaGeneratorTests+X | 4 | 1 field | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+X |
JsonSchemaGeneratorTests+Y | 4 | 1 field | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+Y |
NullableInt32TestClass | 5 | 1 field | Newtonsoft.Json.Tests.Schema .NullableInt32TestClass |
AddressWithDataMember | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .AddressWithDataMember |
DefaultValueHandlingTests+MyClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+MyClass |
DefaultValueHandlingTests+DefaultHandler | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+DefaultHandle r |
TestClass | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .TestClass |
DefaultValueHandlingDeserialize | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserialize |
DefaultValueHandlingDeserializeHolder | 16 | 4 fields | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializeHolder |
DefaultValueHandlingDeserializePopulate | 12 | 3 fields | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializePopulate |
DefaultValueHandlingPropertyClass | 12 | 3 fields | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingPropertyClass |
AbstractWithNoConcrete | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .AbstractWithNoConcrete |
DynamicChildObject | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .DynamicChildObject |
ExtensionDataTests+ExtensionDataDeserial izeWithNonDefaultConstructor | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataDeseria lizeWithNonDefaultConstructor |
ExtensionDataTests+ExtendedObject | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtendedObject |
ExtensionDataTests+JObjectExtensionDataT estClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+JObjectExtensionData TestClass |
ExtensionDataTests+FieldExtensionDataAtt ributeTestClass | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+FieldExtensionDataAt tributeTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClassWithNonDefaultConstructo r | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClassWithNonDefaultConstruct or |
ExtensionDataTests+PublicNoReadExtension DataAttributeTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoReadExtensio nDataAttributeTestClass |
ExtensionDataTests+PublicNoWriteExtensio nDataAttributeTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoWriteExtensi onDataAttributeTestClass |
ExtensionDataTests+PublicJTokenExtension DataAttributeTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicJTokenExtensio nDataAttributeTestClass |
TaskController | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .TaskController |
HasSettableProperty | 16 | 4 fields | Newtonsoft.Json.Tests.Serialization .HasSettableProperty |
JsonSerializerTest+Link | 12 | 3 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link |
JsonSerializerTest+CommentTestObject | 5 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CommentTestObject |
JsonSerializerTest+Bar1 | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Bar1 |
JsonSerializerTest+DictionaryKeyCast | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryKeyCast |
JsonSerializerTest+BaseWithoutContract | 16 | 4 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseWithoutContract |
JsonSerializerTest+ClassWithTimeSpan | 8 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ClassWithTimeSpan |
JsonSerializerTest+ConstructorAndDefault ValueAttributeTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndDefaul tValueAttributeTestClass |
JsonSerializerTest+ConstructorAndRequire dTestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndRequir edTestClass |
JsonSerializerTest+OptInClass | 12 | 3 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+OptInClass |
JsonSerializerTest+OptInClass+OptInClass Metadata | 12 | 3 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+OptInClass+OptInClas sMetadata |
JsonSerializerTest+ExistingValueClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ExistingValueClass |
JsonSerializerTest+ThisGenericTest<T> | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ThisGenericTest<T> |
JsonSerializerTest+JRawValueTestObject | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+JRawValueTestObject |
JsonSerializerTest+TestClass | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+TestClass |
JsonSerializerTest+KVPair<TKey,TValue> | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+KVPair<TKey,TValue> |
JsonSerializerTest+XNodeTestObject | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+XNodeTestObject |
JsonSerializerTest+XmlNodeTestObject | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+XmlNodeTestObject |
JsonSerializerTest+ClientMap | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ClientMap |
JsonSerializerTest+Pos | 8 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Pos |
JsonSerializerTest+PosDouble | 16 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+PosDouble |
JsonSerializerTest+ConstructorCompexIgno redProperty | 12 | 3 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorCompexIgn oredProperty |
JsonSerializerTest+DictionaryKey | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryKey |
JsonSerializerTest+MyClass | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyClass |
Statistics
Stat | Size of instance | InstanceFields |
---|---|---|
Sum: | 2 751 | 0 |
Average: | 8.6 | 0 |
Minimum: | 4 | 0 |
Maximum: | 16 | 0 |
Standard deviation: | 3.9 | 0 |
Variance: | 15.25 | 0 |
![]() | Rule warning: Avoid namespaces with few types |
warnif count > 0 from n in JustMyCode.Namespaces
let types = n.ChildTypes.Where(t => !t.IsGeneratedByCompiler)
where
types.Count() < 5
orderby types.Count() ascending
select new { n, types }
// Make sure that there is a logical organization
// to each of your namespaces, and that there is a
// valid reason for putting types in a sparsely
// populated namespace. Namespaces should contain
// types that are used together in most scenarios.
// When their applications are mutually exclusive,
// types should be located in separate namespacesView Code Query or Rule Body
5 namespaces matched
namespaces | types | Full Name |
---|---|---|
0 type | ||
Newtonsoft.Json.Tests.Documentation .Samples.Json | 2 types | Newtonsoft.Json.Tests.Documentation .Samples.Json |
Newtonsoft.Json.Tests.Linq .ComponentModel | 2 types | Newtonsoft.Json.Tests.Linq .ComponentModel |
Newtonsoft.Json.Tests.Documentation .Samples.Xml | 3 types | Newtonsoft.Json.Tests.Documentation .Samples.Xml |
Newtonsoft.Json.Tests.Linq.JsonPath | 3 types | Newtonsoft.Json.Tests.Linq.JsonPath |
Statistics
Stat | types |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Nested types should not be visible |
warnif count > 0 from t in JustMyCode.Types where
t.IsNested &&
!t.IsGeneratedByCompiler &&
!t.IsPrivate
select new { t, t.NbLinesOfCode, t.Visibility }
// A nested type is a type declared within the
// scope of another type. Nested types are useful
// for encapsulating private implementation details
// of the containing type. Used for this purpose,
// nested types should not be externally visible.
// Do not use externally visible nested types for
// logical grouping or to avoid name collisions;
// instead, use namespaces.View Code Query or Rule Body
339 types matched
types | # lines of code (LOC) | Visibility | Full Name |
---|---|---|---|
JsonReader+State | N/A | ProtectedOrInternal | Newtonsoft.Json.JsonReader+State |
JsonWriter+State | N/A | Internal | Newtonsoft.Json.JsonWriter+State |
ConvertUtils+TypeConvertKey | 9 | Internal | Newtonsoft.Json.Utilities .ConvertUtils+TypeConvertKey |
ConvertUtils+ConvertResult | N/A | Internal | Newtonsoft.Json.Utilities .ConvertUtils+ConvertResult |
DynamicUtils+BinderWrapper | 30 | Internal | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper |
ImmutableCollectionsUtils+ImmutableColle ctionTypeInfo | 4 | Internal | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils+ImmutableColl ectionTypeInfo |
DefaultContractResolver+DictionaryEnumer ator<TEnumeratorKey,TEnumeratorValue> | 9 | Internal | Newtonsoft.Json.Serialization .DefaultContractResolver+DictionaryEnume rator<TEnumeratorKey,TEnumeratorValue> |
DefaultSerializationBinder+TypeNameKey | 7 | Internal | Newtonsoft.Json.Serialization .DefaultSerializationBinder+TypeNameKey |
JsonSerializerInternalReader+PropertyPre sence | N/A | Internal | Newtonsoft.Json.Serialization .JsonSerializerInternalReader+PropertyPr esence |
DemoTests+HtmlColor | 0 | Public | Newtonsoft.Json.Tests .DemoTests+HtmlColor |
DemoTests+PersonDemo | 0 | Public | Newtonsoft.Json.Tests .DemoTests+PersonDemo |
DemoTests+Session | 0 | Public | Newtonsoft.Json.Tests.DemoTests+Session |
DemoTests+HtmlColorConverter | 7 | Public | Newtonsoft.Json.Tests .DemoTests+HtmlColorConverter |
DemoTests+City | 0 | Public | Newtonsoft.Json.Tests.DemoTests+City |
DemoTests+Employee | 0 | Public | Newtonsoft.Json.Tests.DemoTests+Employee |
DemoTests+Manager | 0 | Public | Newtonsoft.Json.Tests.DemoTests+Manager |
DemoTests+House | 0 | Public | Newtonsoft.Json.Tests.DemoTests+House |
DemoTests+House1 | 0 | Public | Newtonsoft.Json.Tests.DemoTests+House1 |
DemoTests+House3 | 0 | Public | Newtonsoft.Json.Tests.DemoTests+House3 |
DemoTests+House2 | 0 | Public | Newtonsoft.Json.Tests.DemoTests+House2 |
DemoTests+House4 | 0 | Public | Newtonsoft.Json.Tests.DemoTests+House4 |
DemoTests+House5 | 0 | Public | Newtonsoft.Json.Tests.DemoTests+House5 |
JsonConvertTest+IntConverter | 4 | Public | Newtonsoft.Json.Tests .JsonConvertTest+IntConverter |
JsonConvertTest+DateTimeResult | 0 | Public | Newtonsoft.Json.Tests .JsonConvertTest+DateTimeResult |
JsonConvertTest+Nest | 0 | Public | Newtonsoft.Json.Tests .JsonConvertTest+Nest |
PerformanceTests+SerializeMethod | N/A | Public | Newtonsoft.Json.Tests .PerformanceTests+SerializeMethod |
BsonReaderTests+BigIntegerTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BigIntegerTestClass |
BsonReaderTests+RegexTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+RegexTestClass |
BsonReaderTests+MyBinder | 4 | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+MyBinder |
BsonReaderTests+BytesTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BytesTestClass |
BsonReaderTests+ObjectTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+ObjectTestClass |
BsonWriterTests+RegexTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonWriterTests+RegexTestClass |
BsonWriterTests+GuidTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonWriterTests+GuidTestClass |
BsonWriterTests+StringTestClass | 0 | Public | Newtonsoft.Json.Tests.Bson .BsonWriterTests+StringTestClass |
BinaryConverterTests+ByteArrayClass | 0 | Public | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+ByteArrayClass |
BinaryConverterTests+BinaryClass | 0 | Public | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+BinaryClass |
BinaryConverterTests+SqlBinaryClass | 0 | Public | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+SqlBinaryClass |
CustomCreationConverterTests+IPerson | N/A | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IPerson |
CustomCreationConverterTests+Employee | 0 | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+Employee |
CustomCreationConverterTests+PersonConve rter | 1 | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+PersonConv erter |
CustomCreationConverterTests+MyClass | 0 | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyClass |
CustomCreationConverterTests+IThing | N/A | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IThing |
CustomCreationConverterTests+MyThing | 0 | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyThing |
CustomCreationConverterTests+MyThingConv erter | 1 | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyThingCon verter |
CustomCreationConverterTests+IRange<T> | N/A | Internal | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IRange<T> |
CustomCreationConverterTests+Range<T> | 0 | Internal | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+Range<T> |
CustomCreationConverterTests+NullInterfa ceTestClass | 0 | Internal | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+NullInterf aceTestClass |
CustomCreationConverterTests+DecimalRang eConverter | 1 | Internal | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+DecimalRan geConverter |
CustomCreationConverterTests+IntRangeCon verter | 1 | Internal | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IntRangeCo nverter |
DataSetConverterTests+DataSetAndTableTes tClass | 0 | Public | Newtonsoft.Json.Tests.Converters .DataSetConverterTests+DataSetAndTableTe stClass |
DataTableConverterTests+TestDataTableCon verter | 5 | Public | Newtonsoft.Json.Tests.Converters .DataTableConverterTests+TestDataTableCo nverter |
ExpandoObjectConverterTests+ExpandoConta iner | 0 | Public | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests+ExpandoCont ainer |
ObjectIdConverterTests+ObjectIdTestClass | 0 | Public | Newtonsoft.Json.Tests.Converters .ObjectIdConverterTests+ObjectIdTestClas s |
RegexConverterTests+RegexTestClass | 0 | Public | Newtonsoft.Json.Tests.Converters .RegexConverterTests+RegexTestClass |
StringEnumConverterTests+EnumClass | 0 | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+EnumClass |
StringEnumConverterTests+EnumContainer<T > | 0 | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+EnumContainer <T> |
StringEnumConverterTests+FlagsTestEnum | N/A | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+FlagsTestEnum |
StringEnumConverterTests+NegativeEnum | N/A | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+NegativeEnum |
StringEnumConverterTests+NamedEnum | N/A | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+NamedEnum |
StringEnumConverterTests+NamedEnumDuplic ate | N/A | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+NamedEnumDupli cate |
StringEnumConverterTests+NegativeEnumCla ss | 0 | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+NegativeEnumCl ass |
StringEnumConverterTests+Bucket | 0 | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+Bucket |
StringEnumConverterTests+MyEnum | N/A | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+MyEnum |
XmlNodeConverterTest+DecimalContainer | 0 | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+DecimalContainer |
XmlNodeConverterTest+DateTimeOffsetConta iner | 0 | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+DateTimeOffsetCont ainer |
XmlNodeConverterTest+Utf8StringWriter | 2 | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+Utf8StringWriter |
XmlNodeConverterTest+TestComplexArrayCla ss | 0 | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+TestComplexArrayCl ass |
XmlNodeConverterTest+NullableXml | 0 | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml |
Department+DepartmentMetadata | 0 | Public | Newtonsoft.Json.Tests.LinqToSql .Department+DepartmentMetadata |
Person+PersonMetadata | 0 | Public | Newtonsoft.Json.Tests.LinqToSql .Person+PersonMetadata |
Role+RoleMetadata | 0 | Public | Newtonsoft.Json.Tests.LinqToSql .Role+RoleMetadata |
JsonSchemaGeneratorTests+CustomDirectory InfoMapper | 9 | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+CustomDirector yInfoMapper |
JsonSchemaGeneratorTests+SortTypeFlag | N/A | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+SortTypeFlag |
JsonSchemaGeneratorTests+X | 0 | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+X |
JsonSchemaGeneratorTests+SortTypeFlagAsS tring | N/A | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+SortTypeFlagAs String |
JsonSchemaGeneratorTests+Y | 0 | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+Y |
ContractResolverTests+CustomList<T> | 0 | Public | Newtonsoft.Json.Tests.Serialization .ContractResolverTests+CustomList<T> |
ContractResolverTests+CustomDictionary <TKey,TValue> | 0 | Public | Newtonsoft.Json.Tests.Serialization .ContractResolverTests+CustomDictionary <TKey,TValue> |
DefaultValueHandlingTests+MyClass | 4 | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+MyClass |
DefaultValueHandlingTests+MyEnum | N/A | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+MyEnum |
DefaultValueHandlingTests+DefaultHandler | 0 | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+DefaultHandle r |
DefaultValueHandlingTests+NetworkUser | 5 | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+NetworkUser |
DynamicConcreteTests+DynamicConcreteCont ractResolver | 4 | Public | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests+DynamicConcreteCon tractResolver |
DynamicTests+DictionaryDynamicObject | 4 | Public | Newtonsoft.Json.Tests.Serialization .DynamicTests+DictionaryDynamicObject |
ExtensionDataTests+ExtensionDataDeserial izeWithNonDefaultConstructor | 2 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataDeseria lizeWithNonDefaultConstructor |
ExtensionDataTests+CustomerInvoice | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+CustomerInvoice |
ExtensionDataTests+ExtensionDataTestClas s | 4 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss |
ExtensionDataTests+JObjectExtensionDataT estClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+JObjectExtensionData TestClass |
ExtensionDataTests+MultipleExtensionData AttributesTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass |
ExtensionDataTests+ExtensionDataAttribut esInheritanceTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass |
ExtensionDataTests+FieldExtensionDataAtt ributeTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+FieldExtensionDataAt tributeTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClassWithNonDefaultConstructo r | 2 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClassWithNonDefaultConstruct or |
ExtensionDataTests+PublicNoReadExtension DataAttributeTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoReadExtensio nDataAttributeTestClass |
ExtensionDataTests+PublicNoWriteExtensio nDataAttributeTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoWriteExtensi onDataAttributeTestClass |
ExtensionDataTests+PublicJTokenExtension DataAttributeTestClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicJTokenExtensio nDataAttributeTestClass |
JsonSerializerTest+Link | 0 | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link |
JsonSerializerTest+BaseClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseClass |
JsonSerializerTest+ChildClass | 0 | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClass |
JsonSerializerTest+BaseClassVirtual | 0 | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseClassVirtual |
Statistics
Stat | # lines of code (LOC) | Visibility |
---|---|---|
Sum: | 717 | 0 |
Average: | 2.25 | 0 |
Minimum: | 0 | 0 |
Maximum: | 96 | 0 |
Standard deviation: | 7.02 | 0 |
Variance: | 49.32 | 0 |
![]() | Rule warning: Declare types in namespaces |
warnif count > 0 from n in Application.Namespaces where
n.Name == ""
select new { n, n.ChildTypes, n.NbLinesOfCode }
// Types are declared within namespaces to
// prevent name collisions, and as a way of
// organizing related types in an object hierarchy.
// Types outside any named namespace are in a
// global namespace that cannot be referenced
// in code. If an anonymous namespace can be found,
// it means that it contains types outside of namespaces.View Code Query or Rule Body
1 namespaces matched
namespace | ChildTypes | # lines of code (LOC) | Full Name |
---|---|---|---|
19 types | 0 |
Statistics
Stat | ChildTypes | # lines of code (LOC) |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Instances size shouldn't be too big |
warnif count > 0 from t in JustMyCode.Types where
t.SizeOfInst > 64
orderby t.SizeOfInst descending
select new { t, t.SizeOfInst, t.InstanceFields }
// Types where SizeOfInst > 64 might degrade performance
// (depending on the number of instances created at runtime)
// and might be hard to maintain. However it is not a rule
// since sometime there is no alternative (the size of
// instances of the System.Net.NetworkInformation.SystemIcmpV6Statistics
// standard class is 2064 bytes).
// Notice that a class with a large SizeOfInst value
// doesn't necessarily have a lot of instance fields.
// It might derive from a class with a large SizeOfInst value.
// See the definition of the SizeOfInst metric here
// http://www.ndepend.com/Metrics.aspx#SizeOfInstView Code Query or Rule Body
29 types matched
types | Size of instance | InstanceFields | Full Name |
---|---|---|---|
CustomerDataSet+CustomersDataTable | 309 | 5 fields | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersDataTable |
JsonSchema | 148 | 37 fields | Newtonsoft.Json.Schema.JsonSchema |
JsonSerializerProxy | 139 | 3 fields | Newtonsoft.Json.Serialization .JsonSerializerProxy |
JsonObjectContract | 137 | 11 fields | Newtonsoft.Json.Serialization .JsonObjectContract |
JsonSerializerSettings | 134 | 30 fields | Newtonsoft.Json.JsonSerializerSettings |
EmitDefaultValueClass | 133 | 21 fields | Newtonsoft.Json.Tests.Serialization .EmitDefaultValueClass |
JsonDictionaryContract | 128 | 10 fields | Newtonsoft.Json.Serialization .JsonDictionaryContract |
JsonSerializer | 127 | 30 fields | Newtonsoft.Json.JsonSerializer |
JsonArrayContract | 119 | 10 fields | Newtonsoft.Json.Serialization .JsonArrayContract |
JsonProperty | 114 | 31 fields | Newtonsoft.Json.Serialization .JsonProperty |
JsonDynamicContract | 107 | 4 fields | Newtonsoft.Json.Serialization .JsonDynamicContract |
JsonTextReader | 104 | 9 fields | Newtonsoft.Json.JsonTextReader |
CustomerDataSet | 96 | 2 fields | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet |
JsonISerializableContract | 95 | 1 field | Newtonsoft.Json.Serialization .JsonISerializableContract |
BsonReader | 94 | 10 fields | Newtonsoft.Json.Bson.BsonReader |
JsonContainerContract | 91 | 6 fields | Newtonsoft.Json.Serialization .JsonContainerContract |
JsonSerializerTest+ISerializableTestObje ct | 88 | 18 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect |
JsonValidatingReader | 87 | 6 fields | Newtonsoft.Json.JsonValidatingReader |
JTokenReader | 79 | 4 fields | Newtonsoft.Json.Linq.JTokenReader |
CustomJsonTextWriter | 79 | 1 field | Newtonsoft.Json.Tests .CustomJsonTextWriter |
JsonSchemaModel | 78 | 23 fields | Newtonsoft.Json.Schema.JsonSchemaModel |
JsonTextWriter | 75 | 8 fields | Newtonsoft.Json.JsonTextWriter |
TraceJsonReader | 75 | 3 fields | Newtonsoft.Json.Serialization .TraceJsonReader |
PersonRole | 72 | 7 fields | Newtonsoft.Json.Tests.LinqToSql .PersonRole |
JsonSerializerTest+BB | 72 | 10 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB |
JsonPrimitiveContract | 68 | 1 field | Newtonsoft.Json.Serialization .JsonPrimitiveContract |
JsonStringContract | 68 | 0 field | Newtonsoft.Json.Serialization .JsonStringContract |
DataServicesTestDatabaseEntities | 68 | 2 fields | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities |
BsonWriter | 66 | 4 fields | Newtonsoft.Json.Bson.BsonWriter |
Statistics
Stat | Size of instance | InstanceFields |
---|---|---|
Sum: | 3 050 | 0 |
Average: | 105.17 | 0 |
Minimum: | 66 | 0 |
Maximum: | 309 | 0 |
Standard deviation: | 46 | 0 |
Variance: | 2 115 | 0 |
![]() | Rule warning: Boxing/unboxing should be avoided |
warnif percentage > 5 from m in Application.Methods where
m.IsUsingBoxing ||
m.IsUsingUnboxing
select new { m, m.NbLinesOfCode, m.IsUsingBoxing, m.IsUsingUnboxing }
// Thanks to generics, boxing and unboxing should be rare.View Code Query or Rule Body
1,121 methods matched
methods | # lines of code (LOC) | IsUsingBoxing | IsUsingUnboxing | Full Name |
---|---|---|---|---|
Push(JsonContainerType) | 8 | True | False | Newtonsoft.Json.JsonReader.Push (JsonContainerType) |
ReadAsDateTimeOffsetInternal() | 28 | True | True | Newtonsoft.Json.JsonReader .ReadAsDateTimeOffsetInternal() |
ReadAsBytesInternal() | 44 | True | True | Newtonsoft.Json.JsonReader .ReadAsBytesInternal() |
ReadAsDecimalInternal() | 24 | True | True | Newtonsoft.Json.JsonReader .ReadAsDecimalInternal() |
ReadAsInt32Internal() | 24 | True | True | Newtonsoft.Json.JsonReader .ReadAsInt32Internal() |
ReadAsStringInternal() | 20 | True | False | Newtonsoft.Json.JsonReader .ReadAsStringInternal() |
ReadAsDateTimeInternal() | 27 | True | True | Newtonsoft.Json.JsonReader .ReadAsDateTimeInternal() |
IsWrappedInTypeObject() | 12 | True | False | Newtonsoft.Json.JsonReader .IsWrappedInTypeObject() |
ValidateEnd(JsonToken) | 6 | True | False | Newtonsoft.Json.JsonReader.ValidateEnd (JsonToken) |
SetStateBasedOnCurrent() | 11 | True | False | Newtonsoft.Json.JsonReader .SetStateBasedOnCurrent() |
GetTypeForCloseToken(JsonToken) | 5 | True | False | Newtonsoft.Json.JsonReader .GetTypeForCloseToken(JsonToken) |
BuildStateArray() | 14 | False | True | Newtonsoft.Json.JsonWriter .BuildStateArray() |
get_WriteState() | 9 | True | False | Newtonsoft.Json.JsonWriter .get_WriteState() |
WriteToken(JsonReader,Int32,Boolean ,Boolean) | 52 | True | True | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Int32,Boolean,Boolean) |
WriteConstructorDate(JsonReader) | 11 | True | True | Newtonsoft.Json.JsonWriter .WriteConstructorDate(JsonReader) |
WriteEnd(JsonContainerType) | 8 | True | False | Newtonsoft.Json.JsonWriter.WriteEnd (JsonContainerType) |
GetCloseTokenForType(JsonContainerType) | 5 | True | False | Newtonsoft.Json.JsonWriter .GetCloseTokenForType(JsonContainerType) |
AutoCompleteClose(JsonContainerType) | 34 | True | False | Newtonsoft.Json.JsonWriter .AutoCompleteClose(JsonContainerType) |
AutoComplete(JsonToken) | 11 | True | False | Newtonsoft.Json.JsonWriter.AutoComplete (JsonToken) |
WriteValue(JsonWriter,PrimitiveTypeCode ,Object) | 90 | True | True | Newtonsoft.Json.JsonWriter.WriteValue (JsonWriter,PrimitiveTypeCode,Object) |
EnsureFloatFormat(Double,String ,FloatFormatHandling,Char,Boolean) | 5 | True | False | Newtonsoft.Json.JsonConvert .EnsureFloatFormat(Double,String ,FloatFormatHandling,Char,Boolean) |
ToString(Guid,Char) | 3 | True | False | Newtonsoft.Json.JsonConvert.ToString (Guid,Char) |
ToString(Object) | 26 | False | True | Newtonsoft.Json.JsonConvert.ToString (Object) |
DeserializeObject<T>(String ,JsonConverter[]) | 1 | False | True | Newtonsoft.Json.JsonConvert .DeserializeObject<T>(String ,JsonConverter[]) |
DeserializeObject<T>(String ,JsonSerializerSettings) | 1 | False | True | Newtonsoft.Json.JsonConvert .DeserializeObject<T>(String ,JsonSerializerSettings) |
FormatMessage(IJsonLineInfo,String ,String) | 10 | True | False | Newtonsoft.Json.JsonPosition .FormatMessage(IJsonLineInfo,String ,String) |
Deserialize<T>(JsonReader) | 1 | False | True | Newtonsoft.Json.JsonSerializer .Deserialize<T>(JsonReader) |
ReadInternal() | 17 | True | False | Newtonsoft.Json.JsonTextReader .ReadInternal() |
ReadStringIntoBuffer(Char) | 93 | True | False | Newtonsoft.Json.JsonTextReader .ReadStringIntoBuffer(Char) |
ReadNumberIntoBuffer() | 16 | True | False | Newtonsoft.Json.JsonTextReader .ReadNumberIntoBuffer() |
ParsePostValue() | 33 | True | False | Newtonsoft.Json.JsonTextReader .ParsePostValue() |
ParseProperty() | 20 | True | False | Newtonsoft.Json.JsonTextReader .ParseProperty() |
ParseUnquotedProperty() | 17 | True | False | Newtonsoft.Json.JsonTextReader .ParseUnquotedProperty() |
ParseValue() | 62 | True | False | Newtonsoft.Json.JsonTextReader .ParseValue() |
ParseConstructor() | 39 | True | False | Newtonsoft.Json.JsonTextReader .ParseConstructor() |
ParseNumber() | 68 | True | False | Newtonsoft.Json.JsonTextReader .ParseNumber() |
ParseComment() | 43 | True | False | Newtonsoft.Json.JsonTextReader .ParseComment() |
ParseTrue() | 3 | True | False | Newtonsoft.Json.JsonTextReader.ParseTrue () |
ParseFalse() | 3 | True | False | Newtonsoft.Json.JsonTextReader .ParseFalse() |
ParseNumberNegativeInfinity() | 5 | True | False | Newtonsoft.Json.JsonTextReader .ParseNumberNegativeInfinity() |
ParseNumberPositiveInfinity() | 5 | True | False | Newtonsoft.Json.JsonTextReader .ParseNumberPositiveInfinity() |
ParseNumberNaN() | 5 | True | False | Newtonsoft.Json.JsonTextReader .ParseNumberNaN() |
WriteEnd(JsonToken) | 8 | True | False | Newtonsoft.Json.JsonTextWriter.WriteEnd (JsonToken) |
WriteValue(Object) | 4 | False | True | Newtonsoft.Json.JsonTextWriter .WriteValue(Object) |
get_CurrentMemberSchemas() | 41 | True | False | Newtonsoft.Json.JsonValidatingReader .get_CurrentMemberSchemas() |
RaiseError(String,JsonSchemaModel) | 3 | True | False | Newtonsoft.Json.JsonValidatingReader .RaiseError(String,JsonSchemaModel) |
ValidateNotDisallowed(JsonSchemaModel) | 6 | True | False | Newtonsoft.Json.JsonValidatingReader .ValidateNotDisallowed(JsonSchemaModel) |
WriteToken(IList<JsonSchemaModel>) | 28 | True | False | Newtonsoft.Json.JsonValidatingReader .WriteToken(IList<JsonSchemaModel>) |
ValidateEndArray(JsonSchemaModel) | 7 | True | False | Newtonsoft.Json.JsonValidatingReader .ValidateEndArray(JsonSchemaModel) |
ValidateString(JsonSchemaModel) | 17 | True | False | Newtonsoft.Json.JsonValidatingReader .ValidateString(JsonSchemaModel) |
ValidateInteger(JsonSchemaModel) | 26 | True | True | Newtonsoft.Json.JsonValidatingReader .ValidateInteger(JsonSchemaModel) |
ProcessValue() | 8 | True | False | Newtonsoft.Json.JsonValidatingReader .ProcessValue() |
ValidateFloat(JsonSchemaModel) | 20 | True | False | Newtonsoft.Json.JsonValidatingReader .ValidateFloat(JsonSchemaModel) |
TestType(JsonSchemaModel,JsonSchemaType) | 4 | True | False | Newtonsoft.Json.JsonValidatingReader .TestType(JsonSchemaModel,JsonSchemaType ) |
WriteTokenInternal(BsonToken) | 69 | True | True | Newtonsoft.Json.Bson.BsonBinaryWriter .WriteTokenInternal(BsonToken) |
CalculateSize(BsonToken) | 51 | True | False | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSize(BsonToken) |
ReadInternal() | 15 | True | False | Newtonsoft.Json.Bson.BsonReader .ReadInternal() |
ReadReference() | 21 | True | False | Newtonsoft.Json.Bson.BsonReader .ReadReference() |
ReadType(BsonType) | 61 | True | False | Newtonsoft.Json.Bson.BsonReader.ReadType (BsonType) |
GetEnumerator() | 1 | True | False | Newtonsoft.Json.Bson.BsonObject .GetEnumerator() |
GetEnumerator() | 1 | True | False | Newtonsoft.Json.Bson.BsonArray .GetEnumerator() |
AddToken(BsonToken) | 9 | True | False | Newtonsoft.Json.Bson.BsonWriter.AddToken (BsonToken) |
WriteValue(Object) | 4 | False | True | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Object) |
WriteValue(Int32) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Int32) |
WriteValue(UInt32) | 4 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(UInt32) |
WriteValue(Int64) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Int64) |
WriteValue(UInt64) | 4 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(UInt64) |
WriteValue(Single) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Single) |
WriteValue(Double) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Double) |
WriteValue(Boolean) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Boolean) |
WriteValue(Int16) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Int16) |
WriteValue(UInt16) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(UInt16) |
WriteValue(Byte) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Byte) |
WriteValue(SByte) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(SByte) |
WriteValue(Decimal) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(Decimal) |
WriteValue(DateTime) | 3 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(DateTime) |
WriteValue(DateTimeOffset) | 2 | True | False | Newtonsoft.Json.Bson.BsonWriter .WriteValue(DateTimeOffset) |
GetByteArray(Object) | 6 | False | True | Newtonsoft.Json.Converters .BinaryConverter.GetByteArray(Object) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 17 | True | False | Newtonsoft.Json.Converters .BinaryConverter.ReadJson(JsonReader ,Type,Object,JsonSerializer) |
ReadByteArray(JsonReader) | 9 | True | False | Newtonsoft.Json.Converters .BinaryConverter.ReadByteArray (JsonReader) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 4 | True | False | Newtonsoft.Json.Converters .BsonObjectIdConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 7 | True | False | Newtonsoft.Json.Converters .CustomCreationConverter<T>.ReadJson (JsonReader,Type,Object,JsonSerializer) |
GetColumnDataType(JsonReader) | 10 | True | False | Newtonsoft.Json.Converters .DataTableConverter.GetColumnDataType (JsonReader) |
CanConvert(Type) | 16 | False | True | Newtonsoft.Json.Converters .DiscriminatedUnionConverter.CanConvert (Type) |
ReadValue(JsonReader) | 9 | True | False | Newtonsoft.Json.Converters .ExpandoObjectConverter.ReadValue (JsonReader) |
WriteJson(JsonWriter,Object ,JsonSerializer) | 12 | False | True | Newtonsoft.Json.Converters .IsoDateTimeConverter.WriteJson (JsonWriter,Object,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 22 | True | True | Newtonsoft.Json.Converters .IsoDateTimeConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
WriteJson(JsonWriter,Object ,JsonSerializer) | 12 | False | True | Newtonsoft.Json.Converters .JavaScriptDateTimeConverter.WriteJson (JsonWriter,Object,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 18 | True | True | Newtonsoft.Json.Converters .JavaScriptDateTimeConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
WriteJson(JsonWriter,Regex ,JsonSerializer) | 7 | True | False | Newtonsoft.Json.Converters .RegexConverter.WriteJson(JsonWriter ,Regex,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 28 | True | False | Newtonsoft.Json.Converters .StringEnumConverter.ReadJson(JsonReader ,Type,Object,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | 8 | True | False | Newtonsoft.Json.Converters .VersionConverter.ReadJson(JsonReader ,Type,Object,JsonSerializer) |
GetPropertyName(IXmlNode ,XmlNamespaceManager) | 14 | True | False | Newtonsoft.Json.Converters .XmlNodeConverter.GetPropertyName (IXmlNode,XmlNamespaceManager) |
SerializeNode(JsonWriter,IXmlNode ,XmlNamespaceManager,Boolean) | 76 | True | False | Newtonsoft.Json.Converters .XmlNodeConverter.SerializeNode (JsonWriter,IXmlNode,XmlNamespaceManager ,Boolean) |
ConvertTokenToXmlValue(JsonReader) | 20 | True | True | Newtonsoft.Json.Converters .XmlNodeConverter.ConvertTokenToXmlValue (JsonReader) |
ReadAttributeElements(JsonReader ,XmlNamespaceManager) | 38 | True | False | Newtonsoft.Json.Converters .XmlNodeConverter.ReadAttributeElements (JsonReader,XmlNamespaceManager) |
DeserializeNode(JsonReader,IXmlDocument ,XmlNamespaceManager,IXmlNode) | 24 | True | False | Newtonsoft.Json.Converters .XmlNodeConverter.DeserializeNode (JsonReader,IXmlDocument ,XmlNamespaceManager,IXmlNode) |
Set(TFirst,TSecond) | 8 | True | False | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> .Set(TFirst,TSecond) |
Add(T) | 3 | True | False | Newtonsoft.Json.Utilities .CollectionWrapper<T>.Add(T) |
Contains(T) | 3 | True | False | Newtonsoft.Json.Utilities .CollectionWrapper<T>.Contains(T) |
Statistics
Stat | # lines of code (LOC) | IsUsingBoxing | IsUsingUnboxing |
---|---|---|---|
Sum: | 13 140 | 0 | 0 |
Average: | 11.72 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 238 | 0 | 0 |
Standard deviation: | 15.79 | 0 | 0 |
Variance: | 249.24 | 0 | 0 |
![]() | Rule warning: Attribute classes should be sealed |
warnif count > 0 from t in Application.Types where
t.IsAttributeClass &&
!t.IsSealed &&
!t.IsAbstract &&
t.IsPublic
select new { t, t.NbLinesOfCode }
// The .NET Framework class library provides methods
// for retrieving custom attributes. By default,
// these methods search the attribute inheritance
// hierarchy; for example System.Attribute.GetCustomAttribute
// searches for the specified attribute type, or any
// attribute type that extends the specified attribute
// type. Sealing the attribute eliminates the search
// through the inheritance hierarchy, and can improve
// performance.View Code Query or Rule Body
1 types matched
type | # lines of code (LOC) | Full Name |
---|---|---|
JsonExtensionDataAttribute | 3 | Newtonsoft.Json .JsonExtensionDataAttribute |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 3 |
Average: | 3 |
Minimum: | 3 |
Maximum: | 3 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Don't use obsolete types, methods or fields |
warnif count > 0
let obsoleteTypes = Types.Where(t => t.IsObsolete)
let obsoleteMethods = Methods.Where(m => m.IsObsolete).ToHashSet()
let obsoleteFields = Fields.Where(f => f.IsObsolete)
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 }View Code Query or Rule Body
6 methods matched
methods | obsoleteTypesUsed | obsoleteMethodsUsed | obsoleteFieldsUsed | Full Name |
---|---|---|---|---|
SerializeObjectAsync(Object) | 0 type | 1 method | 0 field | Newtonsoft.Json.JsonConvert .SerializeObjectAsync(Object) |
SerializeObjectAsync(Object,Formatting) | 0 type | 1 method | 0 field | Newtonsoft.Json.JsonConvert .SerializeObjectAsync(Object,Formatting) |
DeserializeObjectAsync<T>(String) | 0 type | 1 method | 0 field | Newtonsoft.Json.JsonConvert .DeserializeObjectAsync<T>(String) |
DeserializeObjectAsync(String) | 0 type | 1 method | 0 field | Newtonsoft.Json.JsonConvert .DeserializeObjectAsync(String) |
GetTypeFromTypeNameKey (DefaultSerializationBinder+TypeNameKey) | 0 type | 1 method | 0 field | Newtonsoft.Json.Serialization .DefaultSerializationBinder .GetTypeFromTypeNameKey (DefaultSerializationBinder+TypeNameKey) |
Async() | 0 type | 8 methods | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .Async() |
Statistics
Stat | obsoleteTypesUsed | obsoleteMethodsUsed | obsoleteFieldsUsed |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Don't forget to implement methods that throw NotImplementedException |
warnif count > 0
from m in Application.Methods
where m.CreateA("System.NotImplementedException".AllowNoMatch())
select mView Code Query or Rule Body
35 methods matched
methods | Full Name |
---|---|
ReadInternal() | Newtonsoft.Json.JsonReader.ReadInternal( ) |
System.Collections.Generic.IDictionary <System.String,Newtonsoft.Json.Linq .JToken>.get_Values() | Newtonsoft.Json.Linq.JObject.System .Collections.Generic.IDictionary<System .String,Newtonsoft.Json.Linq.JToken> .get_Values() |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests .JsonConvertTest+IntConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
ToBoolean(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToBoolean(IFormatProvider) |
ToByte(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToByte(IFormatProvider) |
ToChar(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToChar(IFormatProvider) |
ToDateTime(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToDateTime(IFormatProvider) |
ToDecimal(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToDecimal(IFormatProvider) |
ToDouble(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToDouble(IFormatProvider) |
ToInt16(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToInt16(IFormatProvider) |
ToInt32(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToInt32(IFormatProvider) |
ToInt64(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToInt64(IFormatProvider) |
ToSByte(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToSByte(IFormatProvider) |
ToSingle(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToSingle(IFormatProvider) |
ToString(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToString(IFormatProvider) |
ToUInt16(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToUInt16(IFormatProvider) |
ToUInt32(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToUInt32(IFormatProvider) |
ToUInt64(IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToUInt64(IFormatProvider) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+PosConverter .ReadJson(JsonReader,Type,Object ,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+PosDoubleConverter .ReadJson(JsonReader,Type,Object ,JsonSerializer) |
Add(Object) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.Add(Object) |
Clear() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.Clear() |
Contains(Object) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.Contains(Object) |
CopyTo(Object[],Int32) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.CopyTo(Object[],Int32) |
get_Count() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.get_Count() |
get_IsReadOnly() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.get_IsReadOnly() |
Remove(Object) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.Remove(Object) |
GetEnumerator() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.GetEnumerator() |
System.Collections.IEnumerable .GetEnumerator() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CollectionClassAttri buteDerived.System.Collections .IEnumerable.GetEnumerator() |
WriteJson(JsonWriter,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ErroringJsonConverte r.WriteJson(JsonWriter,Object ,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ErroringJsonConverte r.ReadJson(JsonReader,Type,Object ,JsonSerializer) |
CanConvert(Type) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ErroringJsonConverte r.CanConvert(Type) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests+Somethi ngElse+SomethingElseConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
WriteJson(JsonWriter,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests+Somethi ngElse+SomethingElseConverter.WriteJson (JsonWriter,Object,JsonSerializer) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .CustomJsonConverter+KeysJsonConverter .ReadJson(JsonReader,Type,Object ,JsonSerializer) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
531
Architecture and Layering |
|
![]() | Critical Rule warning: Avoid namespaces mutually dependent |
warnif count > 0
// Foreach pair of namespace mutually dependent, this rule lists pairs.
// The pair { first, second } is formatted to show first namespace shouldn't use the second namespace.
// The first/second order is inferred from the number of types used by each other.
// The first namespace is using fewer types of the second.
// It means the first namespace is certainly at a lower level in the architecture than the second.
//
// To explore the coupling between two namespaces mutually dependent:
// 1) export the first namespace to the vertical header of the dependency matrix
// 2) export the second namespace to the horizontal header of the dependency matrix
// 3) double-click the black cell
// 4) in the matrix command bar, click the button: Remove empty Row(s) en Column(s)
// At this point, the dependency matrix shows types involved into the coupling.
//
// Following this rule is useful to avoid namespaces dependency cycles.
// More on this in our white books relative to partitioning code.
// http://www.ndepend.com/WhiteBooks.aspx
// Optimization: restraint application assemblies set
// If some namespaces are mutually dependent
// - They must be declared in the same assembly
// - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies.Where(a => a.ContainsNamespaceDependencyCycle != null && a.ContainsNamespaceDependencyCycle.Value)
// hashset is used to avoid reporting both A <-> B and B <-> A
let hashset = new HashSet<INamespace>()
// Optimization: restraint namespaces set
// If a namespace doesn't have a Level value, it must be in a dependency cycle
// or it must be using directly or indirectly a dependency cycle.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)
from nA in namespacesSuspect
// Select namespaces mutually dependent with nA
let unused = hashset.Add(nA) // Populate hashset
let namespacesMutuallyDependentWith_nA = nA.NamespacesUsed.Using(nA)
.Except(hashset) // <-- avoid reporting both A <-> B and B <-> A
where namespacesMutuallyDependentWith_nA.Count() > 0
from nB in namespacesMutuallyDependentWith_nA
// nA and nB are mutually dependent
// First select the one that shouldn't use the other.
// The first namespace is inferred from the fact that it is using less types of the second.
let typesOfBUsedByA = nB.ChildTypes.UsedBy(nA)
let typesOfAUsedByB = nA.ChildTypes.UsedBy(nB)
let first = (typesOfBUsedByA.Count() > typesOfAUsedByB.Count()) ? nB : nA
let second = (first == nA) ? nB : nA
let typesOfFirstUsedBySecond = (first == nA) ? typesOfAUsedByB : typesOfBUsedByA
let typesOfSecondUsedByFirst = (first == nA) ? typesOfBUsedByA : typesOfAUsedByB
select new { first, shouldntUse = second, typesOfFirstUsedBySecond, typesOfSecondUsedByFirst }
View Code Query or Rule Body
10 namespaces matched
namespaces | shouldntUse | typesOfFirstUsedBySecond | typesOfSecondUsedByFirst | Full Name |
---|---|---|---|---|
Newtonsoft.Json.Utilities | Newtonsoft.Json | 15 types | 4 types | Newtonsoft.Json.Utilities |
Newtonsoft.Json | Newtonsoft.Json.Schema | 14 types | 8 types | Newtonsoft.Json |
Newtonsoft.Json | Newtonsoft.Json.Converters | 8 types | 1 type | Newtonsoft.Json |
Newtonsoft.Json | Newtonsoft.Json.Serialization | 38 types | 11 types | Newtonsoft.Json |
Newtonsoft.Json | Newtonsoft.Json.Linq | 16 types | 5 types | Newtonsoft.Json |
Newtonsoft.Json.Converters | Newtonsoft.Json.Serialization | 10 types | 4 types | Newtonsoft.Json.Converters |
Newtonsoft.Json.Utilities | Newtonsoft.Json.Serialization | 28 types | 2 types | Newtonsoft.Json.Utilities |
Newtonsoft.Json.Linq | Newtonsoft.Json.Linq.JsonPath | 7 types | 1 type | Newtonsoft.Json.Linq |
Newtonsoft.Json.Tests | Newtonsoft.Json.Tests.Serialization | 6 types | 1 type | Newtonsoft.Json.Tests |
Newtonsoft.Json.Tests.Serialization | Newtonsoft.Json.Tests.Linq | 1 type | 1 type | Newtonsoft.Json.Tests.Serialization |
Statistics
Stat | shouldntUse | typesOfFirstUsedBySecond | typesOfSecondUsedByFirst |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Avoid namespaces dependency cycles |
warnif count > 0
// This query lists all application namespace dependency cycles.
// Each row shows a different cycle, prefixed with a namespace entangled in the cycle.
//
// To browse a cycle on the dependency graph or the dependency matrix, right click
// a cycle cell and export the matched namespaces to the dependency graph or matrix!
//
// In the matrix, dependency cycles are represented with red squares and black cells.
// To easily browse dependency cycles, the Matrix comes with an option:
// --> Display Direct and Indirect Dependencies
//
// Read our white books relative to partitioning code,
// to know more about namespaces dependency cycles, and why avoiding them
// is a simple but efficient solution to architecture for your code base.
// http://www.ndepend.com/WhiteBooks.aspx
// Optimization: restraint application assemblies set
// If some namespaces are mutually dependent
// - They must be declared in the same assembly
// - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies
.Where(a => a.ContainsNamespaceDependencyCycle != null &&
a.ContainsNamespaceDependencyCycle.Value)
// Optimization: restraint namespaces set
// A namespace involved in a cycle necessarily have a null Level.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)
// hashset is used to avoid iterating again on namespaces already caught in a cycle.
let hashset = new HashSet<INamespace>()
from suspect in namespacesSuspect
// By commenting in this line, the query matches all namespaces involved in a cycle.
where !hashset.Contains(suspect)
// Define 2 code metrics
// - Namespaces depth of is using indirectly the suspect namespace.
// - Namespaces depth of is used by the suspect namespace indirectly.
// Note: for direct usage the depth is equal to 1.
let namespacesUserDepth = namespacesSuspect.DepthOfIsUsing(suspect)
let namespacesUsedDepth = namespacesSuspect.DepthOfIsUsedBy(suspect)
// Select namespaces that are both using and used by namespaceSuspect
let usersAndUsed = from n in namespacesSuspect where
namespacesUserDepth[n] > 0 &&
namespacesUsedDepth[n] > 0
select n
where usersAndUsed.Count() > 0
// Here we've found namespace(s) both using and used by the suspect namespace.
// A cycle involving the suspect namespace is found!
let cycle = usersAndUsed.Append(suspect)
// Fill hashset with namespaces in the cycle.
// .ToArray() is needed to force the iterating process.
let unused1 = (from n in cycle let unused2 = hashset.Add(n) select n).ToArray()
select new { suspect, cycle }
View Code Query or Rule Body
2 namespaces matched
namespaces | cycle | Full Name |
---|---|---|
Newtonsoft.Json | 8 namespaces | Newtonsoft.Json |
Newtonsoft.Json.Tests | 3 namespaces | Newtonsoft.Json.Tests |
Statistics
Stat | cycle |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: UI layer shouldn't use directly DAL layer |
warnif count > 0
// UI layer is made of types in namespaces using a UI framework
let uiTypes = Application.Namespaces.UsingAny(Assemblies.WithNameIn("PresentationFramework", "System.Windows", "System.Windows.Forms", "System.Web")).ChildTypes()
// Exclude commonly used DataSet and associated, from ADO.Net types
// You can easily customize this line to define what are DB types.
let dbTypes = ThirdParty.Assemblies.WithNameIn("System.Data", "EntityFramework", "NHibernate").ChildTypes()
.Except(ThirdParty.Types.WithNameIn("DataSet", "DataTable", "DataRow"))
// DAL layer is made of types in namespaces using a DB framework
// .ToHashSet() results to faster execution of dalTypes.Intersect(uiType.TypesIUse).
let dalTypes = Application.Namespaces.UsingAny(dbTypes).ChildTypes().ToHashSet()
from uiType in uiTypes.UsingAny(dalTypes)
let dalTypesUsed = dalTypes.Intersect(uiType.TypesUsed)
select new {
uiType,
// if dalTypesUsed is empty, it means that the uiType is part of the DAL
dalTypesUsed
}View Code Query or Rule Body
2 types matched
types | dalTypesUsed | Full Name |
---|---|---|
ToString | 1 type | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToString |
ToStringJsonConverter | 1 type | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToStringJsonConverter |
Statistics
Stat | dalTypesUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Assemblies with poor cohesion (RelationalCohesion) |
warnif count > 0 from a in Application.Assemblies where
a.NbTypes > 20 && // Relational Cohesion metrics is relevant only if there are several types
(a.RelationalCohesion < 1.5 ||
a.RelationalCohesion > 4.0)
select new { a, a.NbTypes, a.RelationalCohesion }
// As classes inside an assembly should be strongly related,
// the cohesion should be high. On the other hand, a value
// which is too high may indicate over-coupling. A good range
// for RelationalCohesion is 1.5 to 4.0.
// See the definition of the RelationalCohesion metric here
// http://www.ndepend.com/Metrics.aspx#RelationalCohesionView Code Query or Rule Body
2 assemblies matched
assemblies | # Types | Relational cohesion | Full Name |
---|---|---|---|
Newtonsoft.Json | 313 | 4.73 | Newtonsoft.Json |
Newtonsoft.Json.Tests | 1 155 | 1.31 | Newtonsoft.Json.Tests |
Statistics
Stat | # Types | Relational cohesion |
---|---|---|
Sum: | 1 468 | 6.03 |
Average: | 734 | 3.02 |
Minimum: | 313 | 1.31 |
Maximum: | 1 155 | 4.73 |
Standard deviation: | 421 | 1.71 |
Variance: | 177 241 | 2.92 |
103
Dead Code |
|
![]() | Critical Rule warning: Potentially dead Types |
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
t => !t.IsPublic && // Public types might be used by client applications of your assemblies.
t.Name != "Program" &&
!t.IsGeneratedByCompiler &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// Exclude static types that define only const fields
// because they cannot be seen as used in IL code.
!(t.IsStatic && t.NbMethods == 0 && !t.Fields.Where(f => !f.IsLiteral).Any()))
// Select types unused
let typesUnused =
from t in JustMyCode.Types where
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
select t
// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
where canTypeBeConsideredAsDeadProc(t) &&
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
select t)
from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }View Code Query or Rule Body
2 types matched
types | TypesUsingMe | depth | Full Name |
---|---|---|---|
MyInterfaceConverter | 0 type | 0 | Newtonsoft.Json.Tests.TestObjects .MyInterfaceConverter |
TraceWriter | 1 type | 1 | Newtonsoft.Json.Tests.TestObjects .TraceWriter |
Statistics
Stat | TypesUsingMe | depth |
---|---|---|
Sum: | 0 | 1 |
Average: | 0 | 0.5 |
Minimum: | 0 | 0 |
Maximum: | 0 | 1 |
Standard deviation: | 0 | 0.5 |
Variance: | 0 | 0.25 |
![]() | Critical Rule warning: Potentially dead Methods |
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
m => !m.IsPubliclyVisible && // Public methods might be used by client applications of your assemblies.
!m.IsEntryPoint && // Main() method is not used by-design.
!m.IsExplicitInterfaceImpl && // The IL code never explicitely calls explicit interface methods implementation.
!m.IsClassConstructor && // The IL code never explicitely calls class constructors.
!m.IsFinalizer && // The IL code never explicitely calls finalizers.
!m.IsVirtual && // Only check for non virtual method that are not seen as used in IL.
!(m.IsConstructor && // Don't take account of protected ctor that might be call by a derived ctors.
m.IsProtected) &&
!m.IsEventAdder && // The IL code never explicitely calls events adder/remover.
!m.IsEventRemover &&
!m.IsGeneratedByCompiler &&
!m.ParentType.IsDelegate &&
// Methods tagged with these two attributes are called by the serialization infrastructure.
!m.HasAttribute("System.Runtime.Serialization.OnSerializingAttribute".AllowNoMatch()) &&
!m.HasAttribute("System.Runtime.Serialization.OnDeserializedAttribute".AllowNoMatch()) &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))
// Get methods unused
let methodsUnused =
from m in JustMyCode.Methods where
m.NbMethodsCallingMe == 0 &&
canMethodBeConsideredAsDeadProc(m)
select m
// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
methods => // Unique loop, just to let a chance to build the hashset.
from o in (new object()).ToEnumerable()
// Use a hashet to make Intersect calls much faster!
let hashset = methods.ToHashSet()
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
where canMethodBeConsideredAsDeadProc(m) &&
// Select methods called only by methods already considered as dead
hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
select m)
from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }View Code Query or Rule Body
101 methods matched
methods | MethodsCallingMe | depth | Full Name |
---|---|---|---|
.ctor() | 0 method | 0 | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> ..ctor() |
.ctor(IList) | 0 method | 0 | Newtonsoft.Json.Utilities .CollectionWrapper<T>..ctor(IList) |
.ctor(ICollection<T>) | 0 method | 0 | Newtonsoft.Json.Utilities .CollectionWrapper<T>..ctor(ICollection <T>) |
.ctor(IDictionary) | 0 method | 0 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue>..ctor (IDictionary) |
.ctor(IDictionary<TKey,TValue>) | 0 method | 0 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue>..ctor (IDictionary<TKey,TValue>) |
.ctor(IReadOnlyDictionary<TKey,TValue>) | 0 method | 0 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue>..ctor (IReadOnlyDictionary<TKey,TValue>) |
get_Name() | 0 method | 0 | Newtonsoft.Json.Utilities.EnumValue<T> .get_Name() |
get_FSharpCoreAssembly() | 0 method | 0 | Newtonsoft.Json.Utilities.FSharpUtils .get_FSharpCoreAssembly() |
BuildMapCreator<TKey,TValue>() | 0 method | 0 | Newtonsoft.Json.Utilities.FSharpUtils .BuildMapCreator<TKey,TValue>() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Utilities.StringBuffer. .ctor() |
.ctor(IEnumerable<KeyValuePair <TEnumeratorKey,TEnumeratorValue>>) | 0 method | 0 | Newtonsoft.Json.Serialization .DefaultContractResolver+DictionaryEnume rator<TEnumeratorKey,TEnumeratorValue>. .ctor(IEnumerable<KeyValuePair <TEnumeratorKey,TEnumeratorValue>>) |
SetDynamicCodeGeneration(Boolean) | 0 method | 0 | Newtonsoft.Json.Serialization .JsonTypeReflector .SetDynamicCodeGeneration(Boolean) |
ChangeItemKey(JToken,String) | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.ChangeItemKey (JToken,String) |
ContainsItem(JToken) | 1 method | 1 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.ContainsItem (JToken) |
Remove(String) | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.Remove(String) |
get_Item(String) | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.get_Item (String) |
get_Values() | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.get_Values() |
.ctor(String) | 0 method | 0 | Newtonsoft.Json.Tests.Bson .BsonReaderTests+Cat..ctor(String) |
get_Members() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .TestDynamicObject.get_Members() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtendedObject..ctor () |
set_GetPrivate(Boolean) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_GetPrivate(Boolean) |
set_ExtensionData(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_ExtensionData(IDictionary<String ,JToken>) |
set_ExtensionData1(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass.set_ExtensionData1 (IDictionary<String,JToken>) |
set_ExtensionData2(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass.set_ExtensionData2 (IDictionary<String,JToken>) |
set_ExtensionData0(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass .set_ExtensionData0(IDictionary<String ,JToken>) |
GetPerson() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest.GetPerson() |
get_IsTransient() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseClass .get_IsTransient() |
set_IsTransient(Boolean) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseClass .set_IsTransient(Boolean) |
op_Implicit(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryKeyCast .op_Implicit(String) |
get_A2() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+A.get_A2() |
set_A2(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+A.set_A2(String) |
get_B3() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+B.get_B3() |
set_B3(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+B.set_B3(String) |
get_AA_property3() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.get_AA_property3( ) |
get_AA_property4() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.get_AA_property4( ) |
get_AA_property6() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.get_AA_property6( ) |
get_BB_property3() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.get_BB_property3( ) |
get_BB_property4() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.get_BB_property4( ) |
get_BB_property6() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.get_BB_property6( ) |
set_Prop1(Byte[]) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyClass.set_Prop1 (Byte[]) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyClass..ctor() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Derived..ctor() |
.ctor(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor..ctor(String) |
get_A() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor.get_A() |
set_A(String) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor.set_A(String) |
set_B(Nullable<Int32>) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor.set_B(Nullable<Int32>) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor..ctor() |
get_A() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor.get_A() |
set_A(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor.set_A(String) |
set_B(Nullable<Int32>) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor.set_B(Nullable<Int32>) |
get_Foo() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+FooBar.get_Foo() |
set_Foo(DateTimeOffset) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+FooBar.set_Foo (DateTimeOffset) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+FooBar..ctor() |
set_BaseProperty(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .BaseWithPrivate.set_BaseProperty(String ) |
set_DerivedProperty(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedWithPrivate.set_DerivedProperty (String) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .NonPublicConstructorWithJsonConstructor ..ctor() |
get_LastName() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ErrorPerson2.get_LastName() |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ErrorTestObject.OnError (StreamingContext,ErrorContext) |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .SerializationEventAttributeTests+FooEve nt.OnError(StreamingContext,ErrorContext ) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .SerializationEventOrderTestObject .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .SerializationEventOrderTestObject .OnDeserializingMethod(StreamingContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedSerializationEventOrderTestObjec t.OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedSerializationEventOrderTestObjec t.OnDeserializingMethod(StreamingContext ) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedDerivedSerializationEventOrderTe stObject.OnSerializedMethod (StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedDerivedSerializationEventOrderTe stObject.OnDeserializingMethod (StreamingContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorList<T>..ctor() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorWithIEnumerableCtorList<T>. .ctor() |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DateTimeErrorObjectCollection .OnErrorMethod(StreamingContext ,ErrorContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .MyInterfaceConverter..ctor() |
.ctor() | 1 method | 1 | Newtonsoft.Json.Tests.TestObjects .TraceWriter..ctor() |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ListErrorObjectCollection.OnErrorMethod (StreamingContext,ErrorContext) |
get_CreationDate() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.get_CreationDate() |
set_CreationDate(DateTimeOffset) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.set_CreationDate (DateTimeOffset) |
get_Properties() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.get_Properties() |
HandleError(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PersonError.HandleError (StreamingContext,ErrorContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorTestClass..ctor() |
.ctor(Object) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorTestClass..ctor (Object) |
.ctor(Object,Object) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorTestClass..ctor (Object,Object) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorWithPublicParametized ConstructorTestClass..ctor() |
get_OverriddenPropertyString() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateImplementationBClass .get_OverriddenPropertyString() |
set_OverriddenPropertyString(String) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateImplementationBClass .set_OverriddenPropertyString(String) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestDictionary .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestDictionary .OnDeserializingMethod(StreamingContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestList .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestList .OnDeserializingMethod(StreamingContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .OnDeserializingMethod(StreamingContext) |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .OnErrorMethod(StreamingContext ,ErrorContext) |
OnDerivedSerializedMethod (StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DerivedSerializationEventTestObject .OnDerivedSerializedMethod (StreamingContext) |
OnDerivedDeserializingMethod (StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DerivedSerializationEventTestObject .OnDerivedDeserializingMethod (StreamingContext) |
OnDerivedErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DerivedSerializationEventTestObject .OnDerivedErrorMethod(StreamingContext ,ErrorContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObjectWithConstru ctor.OnSerializedMethod(StreamingContext ) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObjectWithConstru ctor.OnDeserializingMethod (StreamingContext) |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .VersionKeyedCollection.OnErrorMethod (StreamingContext,ErrorContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .SerializationTests+SerializationEventTe stObject.OnSerializedMethod (StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .SerializationTests+SerializationEventTe stObject.OnDeserializingMethod (StreamingContext) |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .SerializationTests+PersonError.OnError (StreamingContext,ErrorContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeConstructorHandling+Website. .ctor() |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ErrorHandlingAttribute+Employee.OnError (StreamingContext,ErrorContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializationCallbackAttributes+Seriali zationEventTestObject.OnSerializedMethod (StreamingContext) |
Statistics
Stat | MethodsCallingMe | depth |
---|---|---|
Sum: | 0 | 6 |
Average: | 0 | 0.059 |
Minimum: | 0 | 0 |
Maximum: | 0 | 1 |
Standard deviation: | 0 | 0.24 |
Variance: | 0 | 0.056 |
![]() | Critical Rule warning: Potentially dead Fields |
warnif count > 0
from f in JustMyCode.Fields where
f.NbMethodsUsingMe == 0 &&
!f.IsPublic && // Although not recommended, public fields might be used by client applications of your assemblies.
!f.IsLiteral && // The IL code never explicitely uses literal fields.
!f.IsEnumValue && // The IL code never explicitely uses enumeration value.
f.Name != "value__" && // Field named 'value__' are relative to enumerations and the IL code never explicitely uses them.
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
!f.IsGeneratedByCompiler
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select fView Code Query or Rule Body
1 fields matched
field | Full Name |
---|---|
_additionalData | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+CustomerInvoice ._additionalData |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
461
Visibility |
|
![]() | Rule warning: Methods that could have a lower visibility |
warnif count > 0 from m in JustMyCode.Methods where
m.Visibility != m.OptimalVisibility &&
!m.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
// Eliminate default constructor from the result.
// Whatever the visibility of the declaring class,
// default constructors are public and introduce noise
// in the current rule.
!( m.IsConstructor && m.IsPublic && m.NbParameters == 0) &&
// Don't decrease the visibility of Main() methods.
!m.IsEntryPoint
select new { m,
m.Visibility ,
CouldBeDeclared = m.OptimalVisibility,
m.MethodsCallingMe }View Code Query or Rule Body
4,696 methods matched
methods | Visibility | CouldBeDeclared | MethodsCallingMe | Full Name |
---|---|---|---|---|
get_SupportMultipleContent() | Public | Internal | 2 methods | Newtonsoft.Json.JsonReader .get_SupportMultipleContent() |
get_DateTimeZoneHandling() | Public | Internal | 6 methods | Newtonsoft.Json.JsonReader .get_DateTimeZoneHandling() |
set_DateTimeZoneHandling (DateTimeZoneHandling) | Public | Internal | 3 methods | Newtonsoft.Json.JsonReader .set_DateTimeZoneHandling (DateTimeZoneHandling) |
get_FloatParseHandling() | Public | Internal | 2 methods | Newtonsoft.Json.JsonReader .get_FloatParseHandling() |
get_DateFormatString() | Public | Internal | 4 methods | Newtonsoft.Json.JsonReader .get_DateFormatString() |
get_MaxDepth() | Public | Internal | 1 method | Newtonsoft.Json.JsonReader.get_MaxDepth( ) |
get_Culture() | Public | Internal | 9 methods | Newtonsoft.Json.JsonReader.get_Culture() |
Skip() | Public | Internal | 9 methods | Newtonsoft.Json.JsonReader.Skip() |
IsStartToken(JsonToken) | Internal | Private | 2 methods | Newtonsoft.Json.JsonReader.IsStartToken (JsonToken) |
get_Top() | ProtectedOrInternal | Internal | 11 methods | Newtonsoft.Json.JsonWriter.get_Top() |
get_DateFormatHandling() | Public | Internal | 5 methods | Newtonsoft.Json.JsonWriter .get_DateFormatHandling() |
get_DateTimeZoneHandling() | Public | Internal | 5 methods | Newtonsoft.Json.JsonWriter .get_DateTimeZoneHandling() |
get_FloatFormatHandling() | Public | Internal | 6 methods | Newtonsoft.Json.JsonWriter .get_FloatFormatHandling() |
WriteToken(JsonReader,Int32,Boolean ,Boolean) | Internal | Private | 1 method | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Int32,Boolean,Boolean) |
InternalWriteEnd(JsonContainerType) | Internal | Private | 4 methods | Newtonsoft.Json.JsonWriter .InternalWriteEnd(JsonContainerType) |
get_Id() | Public | Internal | 1 method | Newtonsoft.Json.JsonContainerAttribute .get_Id() |
set_Id(String) | Public | Private | 1 method | Newtonsoft.Json.JsonContainerAttribute .set_Id(String) |
get_Title() | Public | Internal | 1 method | Newtonsoft.Json.JsonContainerAttribute .get_Title() |
set_Title(String) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_Title(String) |
get_Description() | Public | Internal | 1 method | Newtonsoft.Json.JsonContainerAttribute .get_Description() |
set_Description(String) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_Description(String) |
get_ItemConverterType() | Public | Internal | 1 method | Newtonsoft.Json.JsonContainerAttribute .get_ItemConverterType() |
set_ItemConverterType(Type) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_ItemConverterType(Type) |
get_IsReference() | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .get_IsReference() |
set_IsReference(Boolean) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_IsReference(Boolean) |
get_ItemIsReference() | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .get_ItemIsReference() |
set_ItemIsReference(Boolean) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_ItemIsReference(Boolean) |
get_ItemReferenceLoopHandling() | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .get_ItemReferenceLoopHandling() |
set_ItemReferenceLoopHandling (ReferenceLoopHandling) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_ItemReferenceLoopHandling (ReferenceLoopHandling) |
get_ItemTypeNameHandling() | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .get_ItemTypeNameHandling() |
set_ItemTypeNameHandling (TypeNameHandling) | Public | Private | 0 method | Newtonsoft.Json.JsonContainerAttribute .set_ItemTypeNameHandling (TypeNameHandling) |
get_AllowNullItems() | Public | Internal | 1 method | Newtonsoft.Json.JsonArrayAttribute .get_AllowNullItems() |
set_AllowNullItems(Boolean) | Public | Private | 0 method | Newtonsoft.Json.JsonArrayAttribute .set_AllowNullItems(Boolean) |
.ctor(Boolean) | Public | Private | 0 method | Newtonsoft.Json.JsonArrayAttribute..ctor (Boolean) |
.ctor(String) | Public | Private | 0 method | Newtonsoft.Json.JsonArrayAttribute..ctor (String) |
get_DefaultSettings() | Public | Internal | 2 methods | Newtonsoft.Json.JsonConvert .get_DefaultSettings() |
ToString(DateTime) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (DateTime) |
ToString(DateTimeOffset) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset) |
ToString(Boolean) | Public | Internal | 2 methods | Newtonsoft.Json.JsonConvert.ToString (Boolean) |
ToString(Char) | Public | Internal | 2 methods | Newtonsoft.Json.JsonConvert.ToString (Char) |
ToString(Int32) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (Int32) |
ToString(Int16) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (Int16) |
ToString(UInt16) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (UInt16) |
ToString(UInt32) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (UInt32) |
ToString(Int64) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (Int64) |
ToString(UInt64) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (UInt64) |
ToString(Single) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (Single) |
ToString(Byte) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (Byte) |
ToString(SByte) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (SByte) |
ToString(TimeSpan) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString (TimeSpan) |
ToString(Uri) | Public | Private | 1 method | Newtonsoft.Json.JsonConvert.ToString(Uri ) |
ToString(String,Char) | Public | Private | 3 methods | Newtonsoft.Json.JsonConvert.ToString (String,Char) |
SerializeObject(Object,Type ,JsonSerializerSettings) | Public | Private | 3 methods | Newtonsoft.Json.JsonConvert .SerializeObject(Object,Type ,JsonSerializerSettings) |
DeserializeObject(String,Type ,JsonConverter[]) | Public | Private | 3 methods | Newtonsoft.Json.JsonConvert .DeserializeObject(String,Type ,JsonConverter[]) |
get_ConverterType() | Public | Internal | 1 method | Newtonsoft.Json.JsonConverterAttribute .get_ConverterType() |
.ctor(Type) | Public | Private | 0 method | Newtonsoft.Json.JsonConverterAttribute. .ctor(Type) |
.ctor(String) | Public | Private | 0 method | Newtonsoft.Json.JsonDictionaryAttribute. .ctor(String) |
.ctor(String) | Public | Internal | 38 methods | Newtonsoft.Json.JsonException..ctor (String) |
.ctor(String,Exception) | Public | Internal | 8 methods | Newtonsoft.Json.JsonException..ctor (String,Exception) |
get_WriteData() | Public | Internal | 1 method | Newtonsoft.Json .JsonExtensionDataAttribute .get_WriteData() |
set_WriteData(Boolean) | Public | Private | 1 method | Newtonsoft.Json .JsonExtensionDataAttribute .set_WriteData(Boolean) |
get_ReadData() | Public | Internal | 1 method | Newtonsoft.Json .JsonExtensionDataAttribute.get_ReadData () |
set_ReadData(Boolean) | Public | Private | 1 method | Newtonsoft.Json .JsonExtensionDataAttribute.set_ReadData (Boolean) |
get_MemberSerialization() | Public | Internal | 1 method | Newtonsoft.Json.JsonObjectAttribute .get_MemberSerialization() |
set_MemberSerialization (MemberSerialization) | Public | Private | 1 method | Newtonsoft.Json.JsonObjectAttribute .set_MemberSerialization (MemberSerialization) |
get_ItemRequired() | Public | Private | 0 method | Newtonsoft.Json.JsonObjectAttribute .get_ItemRequired() |
set_ItemRequired(Required) | Public | Private | 0 method | Newtonsoft.Json.JsonObjectAttribute .set_ItemRequired(Required) |
.ctor(MemberSerialization) | Public | Private | 0 method | Newtonsoft.Json.JsonObjectAttribute. .ctor(MemberSerialization) |
.ctor(String) | Public | Private | 0 method | Newtonsoft.Json.JsonObjectAttribute. .ctor(String) |
.ctor(JsonContainerType) | Public | Internal | 2 methods | Newtonsoft.Json.JsonPosition..ctor (JsonContainerType) |
WriteTo(StringBuilder) | Internal | Private | 1 method | Newtonsoft.Json.JsonPosition.WriteTo (StringBuilder) |
TypeHasIndex(JsonContainerType) | Internal | Private | 1 method | Newtonsoft.Json.JsonPosition .TypeHasIndex(JsonContainerType) |
get_ItemConverterType() | Public | Internal | 1 method | Newtonsoft.Json.JsonPropertyAttribute .get_ItemConverterType() |
set_ItemConverterType(Type) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_ItemConverterType(Type) |
get_ObjectCreationHandling() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_ObjectCreationHandling() |
set_ObjectCreationHandling (ObjectCreationHandling) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_ObjectCreationHandling (ObjectCreationHandling) |
get_TypeNameHandling() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_TypeNameHandling() |
set_TypeNameHandling(TypeNameHandling) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_TypeNameHandling(TypeNameHandling) |
get_Order() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_Order() |
set_Order(Int32) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_Order(Int32) |
get_Required() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_Required() |
set_Required(Required) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_Required(Required) |
get_PropertyName() | Public | Internal | 1 method | Newtonsoft.Json.JsonPropertyAttribute .get_PropertyName() |
set_PropertyName(String) | Public | Private | 1 method | Newtonsoft.Json.JsonPropertyAttribute .set_PropertyName(String) |
get_ItemReferenceLoopHandling() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_ItemReferenceLoopHandling() |
set_ItemReferenceLoopHandling (ReferenceLoopHandling) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_ItemReferenceLoopHandling (ReferenceLoopHandling) |
get_ItemTypeNameHandling() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_ItemTypeNameHandling() |
set_ItemTypeNameHandling (TypeNameHandling) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_ItemTypeNameHandling (TypeNameHandling) |
get_ItemIsReference() | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .get_ItemIsReference() |
set_ItemIsReference(Boolean) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute .set_ItemIsReference(Boolean) |
.ctor(String) | Public | Private | 0 method | Newtonsoft.Json.JsonPropertyAttribute. .ctor(String) |
get_LineNumber() | Public | Private | 0 method | Newtonsoft.Json.JsonReaderException .get_LineNumber() |
get_LinePosition() | Public | Private | 0 method | Newtonsoft.Json.JsonReaderException .get_LinePosition() |
get_Path() | Public | Private | 0 method | Newtonsoft.Json.JsonReaderException .get_Path() |
.ctor(SerializationInfo,StreamingContext ) | Public | Private | 0 method | Newtonsoft.Json.JsonReaderException. .ctor(SerializationInfo,StreamingContext ) |
.ctor(String,Exception,String,Int32 ,Int32) | Internal | Private | 1 method | Newtonsoft.Json.JsonReaderException. .ctor(String,Exception,String,Int32 ,Int32) |
Create(IJsonLineInfo,String,String ,Exception) | Internal | Private | 1 method | Newtonsoft.Json.JsonReaderException .Create(IJsonLineInfo,String,String ,Exception) |
.ctor(SerializationInfo,StreamingContext ) | Public | Private | 0 method | Newtonsoft.Json .JsonSerializationException..ctor (SerializationInfo,StreamingContext) |
Serialize(TextWriter,Object,Type) | Public | Private | 0 method | Newtonsoft.Json.JsonSerializer.Serialize (TextWriter,Object,Type) |
get_MetadataPropertyHandling() | Public | Internal | 1 method | Newtonsoft.Json.JsonSerializerSettings .get_MetadataPropertyHandling() |
Statistics
Stat | Visibility | CouldBeDeclared | MethodsCallingMe |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Types that could have a lower visibility |
warnif count > 0 from t in JustMyCode.Types where
t.Visibility != t.OptimalVisibility &&
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
!t.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// Static types that define only const fields cannot be seen as used in IL code.
// They don't have to be tagged with CannotDecreaseVisibilityAttribute.
!( t.IsStatic &&
!t.Methods.Any(m => !m.IsClassConstructor) &&
!t.Fields.Any(f => !f.IsLiteral && !(f.IsStatic && f.IsInitOnly))) &&
// A type used by an interface that has the same visibility
// cannot have its visibility decreased, else a compilation error occurs!
!t.TypesUsingMe.Any(tUser =>
tUser.IsInterface &&
tUser.Visibility == t.Visibility)
select new { t, t.Visibility ,
CouldBeDeclared = t.OptimalVisibility,
t.TypesUsingMe }
View Code Query or Rule Body
798 types matched
types | Visibility | CouldBeDeclared | TypesUsingMe | Full Name |
---|---|---|---|---|
BsonObjectIdConverter | Public | Internal | 1 type | Newtonsoft.Json.Converters .BsonObjectIdConverter |
DataSetConverter | Public | Internal | 1 type | Newtonsoft.Json.Converters .DataSetConverter |
DataTableConverter | Public | Internal | 2 types | Newtonsoft.Json.Converters .DataTableConverter |
DiscriminatedUnionConverter | Public | Internal | 1 type | Newtonsoft.Json.Converters .DiscriminatedUnionConverter |
EntityKeyMemberConverter | Public | Internal | 1 type | Newtonsoft.Json.Converters .EntityKeyMemberConverter |
ExpandoObjectConverter | Public | Internal | 1 type | Newtonsoft.Json.Converters .ExpandoObjectConverter |
ConvertUtils+TypeConvertKey | Internal | Private | 1 type | Newtonsoft.Json.Utilities .ConvertUtils+TypeConvertKey |
ImmutableCollectionsUtils+ImmutableColle ctionTypeInfo | Internal | Private | 3 types | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils+ImmutableColl ectionTypeInfo |
DefaultContractResolver+DictionaryEnumer ator<TEnumeratorKey,TEnumeratorValue> | Internal | Private | 1 type | Newtonsoft.Json.Serialization .DefaultContractResolver+DictionaryEnume rator<TEnumeratorKey,TEnumeratorValue> |
DefaultSerializationBinder+TypeNameKey | Internal | Private | 1 type | Newtonsoft.Json.Serialization .DefaultSerializationBinder+TypeNameKey |
DynamicValueProvider | Public | Internal | 1 type | Newtonsoft.Json.Serialization .DynamicValueProvider |
ExpressionValueProvider | Public | Internal | 0 type | Newtonsoft.Json.Serialization .ExpressionValueProvider |
JsonISerializableContract | Public | Internal | 4 types | Newtonsoft.Json.Serialization .JsonISerializableContract |
JsonLinqContract | Public | Internal | 1 type | Newtonsoft.Json.Serialization .JsonLinqContract |
JsonStringContract | Public | Internal | 2 types | Newtonsoft.Json.Serialization .JsonStringContract |
DemoTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.DemoTests |
DemoTests+HtmlColor | Public | Private | 2 types | Newtonsoft.Json.Tests .DemoTests+HtmlColor |
DemoTests+PersonDemo | Public | Private | 1 type | Newtonsoft.Json.Tests .DemoTests+PersonDemo |
DemoTests+Session | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+Session |
DemoTests+HtmlColorConverter | Public | Private | 1 type | Newtonsoft.Json.Tests .DemoTests+HtmlColorConverter |
DemoTests+City | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+City |
DemoTests+Manager | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+Manager |
DemoTests+House | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+House |
DemoTests+House1 | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+House1 |
DemoTests+House3 | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+House3 |
DemoTests+House2 | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+House2 |
DemoTests+House4 | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+House4 |
DemoTests+House5 | Public | Private | 1 type | Newtonsoft.Json.Tests.DemoTests+House5 |
DataServicesTestDatabaseEntities | Public | Internal | 0 type | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities |
File | Public | Internal | 3 types | Newtonsoft.Json.Tests.File |
Folder | Public | Internal | 3 types | Newtonsoft.Json.Tests.Folder |
ExceptionTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.ExceptionTests |
JsonArrayAttributeTests | Public | Internal | 0 type | Newtonsoft.Json.Tests .JsonArrayAttributeTests |
JsonConvertTest | Public | Internal | 0 type | Newtonsoft.Json.Tests.JsonConvertTest |
JsonConvertTest+IntConverter | Public | Private | 1 type | Newtonsoft.Json.Tests .JsonConvertTest+IntConverter |
JsonConvertTest+DateTimeResult | Public | Private | 1 type | Newtonsoft.Json.Tests .JsonConvertTest+DateTimeResult |
JsonConvertTest+Nest | Public | Private | 1 type | Newtonsoft.Json.Tests .JsonConvertTest+Nest |
JsonTextReaderTest | Public | Internal | 0 type | Newtonsoft.Json.Tests.JsonTextReaderTest |
ToggleReaderError | Public | Internal | 1 type | Newtonsoft.Json.Tests.ToggleReaderError |
SlowStream | Public | Internal | 1 type | Newtonsoft.Json.Tests.SlowStream |
JsonTextWriterTest | Public | Internal | 0 type | Newtonsoft.Json.Tests.JsonTextWriterTest |
CustomJsonTextWriter | Public | Internal | 1 type | Newtonsoft.Json.Tests .CustomJsonTextWriter |
ConvertibleInt | Public | Internal | 3 types | Newtonsoft.Json.Tests.ConvertibleInt |
JsonValidatingReaderTests | Public | Internal | 0 type | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
Image | Public | Internal | 1 type | Newtonsoft.Json.Tests.Image |
PerformanceTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.PerformanceTests |
LargeRecursiveTestClass | Public | Internal | 1 type | Newtonsoft.Json.Tests .LargeRecursiveTestClass |
TestClass | Public | Internal | 1 type | Newtonsoft.Json.Tests.TestClass |
Address | Public | Internal | 2 types | Newtonsoft.Json.Tests.Address |
SimpleObject | Public | Internal | 1 type | Newtonsoft.Json.Tests.SimpleObject |
CustomAssert | Public | Internal | 11 types | Newtonsoft.Json.Tests.CustomAssert |
ExceptionAssert | Public | Internal | 41 types | Newtonsoft.Json.Tests.ExceptionAssert |
BsonReaderTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
BsonReaderTests+BigIntegerTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BigIntegerTestClass |
BsonReaderTests+RegexTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonReaderTests+RegexTestClass |
BsonReaderTests+MyBinder | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonReaderTests+MyBinder |
BsonReaderTests+BytesTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BytesTestClass |
BsonReaderTests+ObjectTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonReaderTests+ObjectTestClass |
BsonWriterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Bson .BsonWriterTests |
BsonWriterTests+RegexTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonWriterTests+RegexTestClass |
BsonWriterTests+GuidTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonWriterTests+GuidTestClass |
BsonWriterTests+StringTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Bson .BsonWriterTests+StringTestClass |
BinaryConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .BinaryConverterTests |
BinaryConverterTests+ByteArrayClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+ByteArrayClass |
BinaryConverterTests+BinaryClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+BinaryClass |
BinaryConverterTests+SqlBinaryClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+SqlBinaryClass |
CustomCreationConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests |
CustomCreationConverterTests+IPerson | Public | Private | 3 types | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IPerson |
CustomCreationConverterTests+Employee | Public | Private | 2 types | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+Employee |
CustomCreationConverterTests+PersonConve rter | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+PersonConv erter |
CustomCreationConverterTests+MyClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyClass |
CustomCreationConverterTests+IThing | Public | Private | 4 types | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IThing |
CustomCreationConverterTests+MyThing | Public | Private | 2 types | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyThing |
CustomCreationConverterTests+MyThingConv erter | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyThingCon verter |
CustomCreationConverterTests+IRange<T> | Internal | Private | 5 types | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IRange<T> |
CustomCreationConverterTests+Range<T> | Internal | Private | 3 types | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+Range<T> |
CustomCreationConverterTests+NullInterfa ceTestClass | Internal | Private | 1 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+NullInterf aceTestClass |
CustomCreationConverterTests+DecimalRang eConverter | Internal | Private | 1 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+DecimalRan geConverter |
CustomCreationConverterTests+IntRangeCon verter | Internal | Private | 1 type | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+IntRangeCo nverter |
DataSetConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .DataSetConverterTests |
DataSetConverterTests+DataSetAndTableTes tClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .DataSetConverterTests+DataSetAndTableTe stClass |
DataTableConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .DataTableConverterTests |
DataTableConverterTests+TestDataTableCon verter | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .DataTableConverterTests+TestDataTableCo nverter |
ExpandoObjectConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests |
ExpandoObjectConverterTests+ExpandoConta iner | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests+ExpandoCont ainer |
IsoDateTimeConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests |
JavaScriptDateTimeConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests |
ConverterList<T> | Public | Internal | 1 type | Newtonsoft.Json.Tests.Converters .ConverterList<T> |
ConverterDictionary<T> | Public | Internal | 1 type | Newtonsoft.Json.Tests.Converters .ConverterDictionary<T> |
ConverterObject | Public | Internal | 1 type | Newtonsoft.Json.Tests.Converters .ConverterObject |
DateIntConverter | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .DateIntConverter |
KeyValuePairConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .KeyValuePairConverterTests |
ObjectIdConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .ObjectIdConverterTests |
ObjectIdConverterTests+ObjectIdTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .ObjectIdConverterTests+ObjectIdTestClas s |
RegexConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .RegexConverterTests |
RegexConverterTests+RegexTestClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .RegexConverterTests+RegexTestClass |
StringEnumConverterTests | Public | Internal | 0 type | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests |
StringEnumConverterTests+EnumClass | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+EnumClass |
StringEnumConverterTests+EnumContainer<T > | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+EnumContainer <T> |
StringEnumConverterTests+NegativeEnumCla ss | Public | Private | 1 type | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+NegativeEnumCl ass |
Statistics
Stat | Visibility | CouldBeDeclared | TypesUsingMe |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Fields that could have a lower visibility |
warnif count > 0 from f in JustMyCode.Fields where
f.Visibility != f.OptimalVisibility &&
!f.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch())
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
select new { f,
f.Visibility ,
CouldBeDeclared = f.OptimalVisibility,
f.MethodsUsingMe }View Code Query or Rule Body
216 fields matched
fields | Visibility | CouldBeDeclared | MethodsUsingMe | Full Name |
---|---|---|---|---|
_quoteChar | Internal | Protected | 4 methods | Newtonsoft.Json.JsonReader._quoteChar |
_currentState | Internal | Protected | 12 methods | Newtonsoft.Json.JsonReader._currentState |
_readType | Internal | Protected | 12 methods | Newtonsoft.Json.JsonReader._readType |
_dateParseHandling | Internal | Protected | 4 methods | Newtonsoft.Json.JsonReader ._dateParseHandling |
_floatParseHandling | Internal | Protected | 8 methods | Newtonsoft.Json.JsonReader ._floatParseHandling |
True | Public | Internal | 3 methods | Newtonsoft.Json.JsonConvert.True |
False | Public | Internal | 3 methods | Newtonsoft.Json.JsonConvert.False |
Null | Public | Internal | 7 methods | Newtonsoft.Json.JsonConvert.Null |
Undefined | Public | Internal | 3 methods | Newtonsoft.Json.JsonConvert.Undefined |
_metadataPropertyHandling | Internal | Private | 3 methods | Newtonsoft.Json.JsonSerializer ._metadataPropertyHandling |
_converters | Internal | Private | 2 methods | Newtonsoft.Json.JsonSerializer ._converters |
_traceWriter | Internal | Private | 2 methods | Newtonsoft.Json.JsonSerializer ._traceWriter |
Type | Public | Internal | 2 methods | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Type |
Length | Public | Internal | 3 methods | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Length |
Position | Public | Internal | 2 methods | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Position |
Year | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Year |
Month | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Month |
Day | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Day |
Hour | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Hour |
Minute | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Minute |
Second | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Second |
Fraction | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Fraction |
ZoneHour | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .ZoneHour |
ZoneMinute | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .ZoneMinute |
Zone | Public | Internal | 2 methods | Newtonsoft.Json.Utilities.DateTimeParser .Zone |
EmptyTypes | Public | Internal | 5 methods | Newtonsoft.Json.Utilities .ReflectionUtils.EmptyTypes |
JsonSchemaTypeMapping | Public | Internal | 3 methods | Newtonsoft.Json.Schema .JsonSchemaConstants .JsonSchemaTypeMapping |
TraceWriter | Internal | Protected | 23 methods | Newtonsoft.Json.Serialization .JsonSerializerInternalBase.TraceWriter |
_listChanged | Internal | Protected | 8 methods | Newtonsoft.Json.Linq.JContainer ._listChanged |
Instance | Public | Internal | 2 methods | Newtonsoft.Json.Linq .JContainer+JTokenReferenceEqualityCompa rer.Instance |
strings | Public | Internal | 4 methods | Newtonsoft.Json.Tests.TestClass.strings |
dictionary | Public | Internal | 4 methods | Newtonsoft.Json.Tests.TestClass .dictionary |
Value | Public | Private | 0 method | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+Bucket.Value |
Name | Public | Internal | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml.Name |
notNull | Public | Internal | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml .notNull |
isNull | Public | Internal | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml.isNull |
x | Public | Private | 0 method | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+X.x |
y | Public | Private | 0 method | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+Y.y |
Comment | Public | Private | 0 method | Newtonsoft.Json.Tests.Schema.DMDSLBase .Comment |
Jobs | Public | Private | 1 method | Newtonsoft.Json.Tests.Schema.Workspace .Jobs |
Name | Public | Private | 0 method | Newtonsoft.Json.Tests.Schema .ControlFlowItemBase.Name |
Tasks | Public | Private | 1 method | Newtonsoft.Json.Tests.Schema .ControlFlowItem.Tasks |
Containers | Public | Private | 1 method | Newtonsoft.Json.Tests.Schema .ControlFlowItem.Containers |
DataFlowTasks | Public | Private | 1 method | Newtonsoft.Json.Tests.Schema.Task .DataFlowTasks |
BulkInsertTask | Public | Private | 1 method | Newtonsoft.Json.Tests.Schema.Task .BulkInsertTask |
ContainerJobs | Public | Private | 1 method | Newtonsoft.Json.Tests.Schema.Container .ContainerJobs |
field1 | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+DefaultHandle r.field1 |
field2 | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+DefaultHandle r.field2 |
Int | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .TestDynamicObject.Int |
Explicit | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .TestDynamicObject.Explicit |
_extensionData | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataDeseria lizeWithNonDefaultConstructor ._extensionData |
Readonly | Public | Private | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.Readonly |
ExtensionData | Public | Internal | 5 methods | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClass.ExtensionData |
ExtensionData | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClassWithNonDefaultConstruct or.ExtensionData |
ExtensionData | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoReadExtensio nDataAttributeTestClass.ExtensionData |
ExtensionData | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoWriteExtensi onDataAttributeTestClass.ExtensionData |
ExtensionData | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicJTokenExtensio nDataAttributeTestClass.ExtensionData |
Id | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link.Id |
ParentId | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link.ParentId |
ChildId | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link.ChildId |
TimeSpanField | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ClassWithTimeSpan .TimeSpanField |
_byteValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._byteValue |
_charValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._charValue |
_dateTimeValue | Internal | Private | 3 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._dateTimeValue |
_decimalValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._decimalValue |
_shortValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._shortValue |
_longValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._longValue |
_sbyteValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._sbyteValue |
_floatValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._floatValue |
_ushortValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._ushortValue |
_uintValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._uintValue |
_ulongValue | Internal | Private | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect._ulongValue |
AA_field1 | Protected | Private | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.AA_field1 |
AA_field2 | Protected | Private | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.AA_field2 |
BB_field1 | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.BB_field1 |
BB_field2 | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.BB_field2 |
X | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector.X |
Y | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector.Y |
Z | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector.Z |
Position | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+VectorParent .Position |
_internalString | Internal | Private | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+PrivateMembersClassW ithAttributes._internalString |
zebra | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseType.zebra |
bird | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType.bird |
parrot | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType.parrot |
dog | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType.dog |
antelope | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType.antelope |
cat | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType.cat |
albatross | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType .albatross |
dinosaur | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DerivedType.dinosaur |
Value | Public | Internal | 5 methods | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConvertibleId.Value |
Id | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+TestClassConvertable .Id |
X | Public | Internal | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+TestClassConvertable .X |
x | Public | Internal | 3 methods | Newtonsoft.Json.Tests.Serialization .StaticTestClass.x |
y | Public | Internal | 3 methods | Newtonsoft.Json.Tests.Serialization .StaticTestClass.y |
Required1 | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .MyTypeWithRequiredMembers.Required1 |
Required2 | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .MyTypeWithRequiredMembers.Required2 |
FirstOrder | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests+OptionalOrder .FirstOrder |
FirstOrderSpecified | Public | Private | 0 method | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests+OptionalOrder .FirstOrderSpecified |
WeightSpecified | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .SpecifiedTestClass.WeightSpecified |
HeightSpecified | Public | Internal | 2 methods | Newtonsoft.Json.Tests.Serialization .SpecifiedTestClass.HeightSpecified |
Statistics
Stat | Visibility | CouldBeDeclared | MethodsUsingMe |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: Types that could be declared as private, nested in a parent type |
// The conditions for a type to be nested into a parent type
// is that the parent type is the only type using it,
// and that the parent type is declared in the same namespace.
//
// Declaring a type as private into a parent type helps enforcing encapsulation.
// But since nested private types are hardly testable, this rule might
// not be applied for types used directly by tests.
warnif count > 0
from t in Application.Types
where !t.IsGeneratedByCompiler &&
!t.IsNested &&
!t.IsPubliclyVisible &&
// Only one type user...
t.TypesUsingMe.Count() == 1
let couldBeNestedIn = t.TypesUsingMe.Single()
where !couldBeNestedIn.IsGeneratedByCompiler &&
// ...declared in the same namespace
couldBeNestedIn.ParentNamespace == t.ParentNamespace
select new { t, couldBeNestedIn }View Code Query or Rule Body
17 types matched
types | couldBeNestedIn | Full Name |
---|---|---|
BsonBinaryWriter | BsonWriter | Newtonsoft.Json.Bson.BsonBinaryWriter |
XmlDocumentWrapper | XmlNodeConverter | Newtonsoft.Json.Converters .XmlDocumentWrapper |
XDeclarationWrapper | XDocumentWrapper | Newtonsoft.Json.Converters .XDeclarationWrapper |
XTextWrapper | XContainerWrapper | Newtonsoft.Json.Converters.XTextWrapper |
XCommentWrapper | XContainerWrapper | Newtonsoft.Json.Converters .XCommentWrapper |
DateTimeParser | DateTimeUtils | Newtonsoft.Json.Utilities.DateTimeParser |
ReflectionMember | ReflectionObject | Newtonsoft.Json.Utilities .ReflectionMember |
ILGeneratorExtensions | DynamicReflectionDelegateFactory | Newtonsoft.Json.Utilities .ILGeneratorExtensions |
JsonSchemaConstants | JsonSchemaBuilder | Newtonsoft.Json.Schema .JsonSchemaConstants |
JsonSchemaNodeCollection | JsonSchemaModelBuilder | Newtonsoft.Json.Schema .JsonSchemaNodeCollection |
JsonSchemaWriter | JsonSchema | Newtonsoft.Json.Schema.JsonSchemaWriter |
CachedAttributeGetter<T> | JsonTypeReflector | Newtonsoft.Json.Serialization .CachedAttributeGetter<T> |
ResolverContractKey | DefaultContractResolver | Newtonsoft.Json.Serialization .ResolverContractKey |
JsonFormatterConverter | JsonSerializerInternalReader | Newtonsoft.Json.Serialization .JsonFormatterConverter |
IErrorPerson2 | SerializationErrorHandlingTests | Newtonsoft.Json.Tests.Serialization .IErrorPerson2 |
ErrorPerson2 | SerializationErrorHandlingTests | Newtonsoft.Json.Tests.Serialization .ErrorPerson2 |
TraceWriter | MyInterfaceConverter | Newtonsoft.Json.Tests.TestObjects .TraceWriter |
Statistics
Stat | couldBeNestedIn |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Fields should be declared as private |
// Fields should be considered as implementation details
// and as a consequence they should be declared as private.
// When a field is private, the caller cannot get
// inappropriate direct access to the field.
warnif count > 0 from f in Application.Fields where
!f.IsPrivate &&
// These conditions filter cases where fields
// doesn't represent state that should be encapsulated.
!f.IsGeneratedByCompiler &&
!f.IsSpecialName &&
!f.IsInitOnly &&
!f.IsLiteral &&
!f.IsEnumValue
// A non-private field assigned from outside its class,
// usually leads to complicated field state management.
let outsideMethodsAssigningMe =
f.MethodsAssigningMe.Where(m => m.ParentType != f.ParentType)
select new { f,
f.Visibility,
outsideMethodsAssigningMe }View Code Query or Rule Body
283 fields matched
fields | Visibility | outsideMethodsAssigningMe | Full Name |
---|---|---|---|
_quoteChar | Internal | 2 methods | Newtonsoft.Json.JsonReader._quoteChar |
_currentState | Internal | 1 method | Newtonsoft.Json.JsonReader._currentState |
_readType | Internal | 3 methods | Newtonsoft.Json.JsonReader._readType |
_dateParseHandling | Internal | 0 method | Newtonsoft.Json.JsonReader ._dateParseHandling |
_floatParseHandling | Internal | 0 method | Newtonsoft.Json.JsonReader ._floatParseHandling |
_isReference | Internal | 0 method | Newtonsoft.Json.JsonContainerAttribute ._isReference |
_itemIsReference | Internal | 0 method | Newtonsoft.Json.JsonContainerAttribute ._itemIsReference |
_itemReferenceLoopHandling | Internal | 0 method | Newtonsoft.Json.JsonContainerAttribute ._itemReferenceLoopHandling |
_itemTypeNameHandling | Internal | 0 method | Newtonsoft.Json.JsonContainerAttribute ._itemTypeNameHandling |
_itemRequired | Internal | 0 method | Newtonsoft.Json.JsonObjectAttribute ._itemRequired |
Type | Internal | 0 method | Newtonsoft.Json.JsonPosition.Type |
Position | Internal | 2 methods | Newtonsoft.Json.JsonPosition.Position |
PropertyName | Internal | 2 methods | Newtonsoft.Json.JsonPosition .PropertyName |
HasIndex | Internal | 0 method | Newtonsoft.Json.JsonPosition.HasIndex |
_nullValueHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._nullValueHandling |
_defaultValueHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._defaultValueHandling |
_referenceLoopHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._referenceLoopHandling |
_objectCreationHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._objectCreationHandling |
_typeNameHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._typeNameHandling |
_isReference | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._isReference |
_order | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._order |
_required | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._required |
_itemIsReference | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._itemIsReference |
_itemReferenceLoopHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._itemReferenceLoopHandling |
_itemTypeNameHandling | Internal | 0 method | Newtonsoft.Json.JsonPropertyAttribute ._itemTypeNameHandling |
_typeNameHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._typeNameHandling |
_typeNameAssemblyFormat | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._typeNameAssemblyFormat |
_preserveReferencesHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._preserveReferencesHandling |
_referenceLoopHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._referenceLoopHandling |
_missingMemberHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._missingMemberHandling |
_objectCreationHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._objectCreationHandling |
_nullValueHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._nullValueHandling |
_defaultValueHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._defaultValueHandling |
_constructorHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._constructorHandling |
_metadataPropertyHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._metadataPropertyHandling |
_converters | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._converters |
_contractResolver | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._contractResolver |
_traceWriter | Internal | 0 method | Newtonsoft.Json.JsonSerializer ._traceWriter |
_binder | Internal | 0 method | Newtonsoft.Json.JsonSerializer._binder |
_context | Internal | 0 method | Newtonsoft.Json.JsonSerializer._context |
_formatting | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._formatting |
_dateFormatHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._dateFormatHandling |
_dateTimeZoneHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._dateTimeZoneHandling |
_dateParseHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._dateParseHandling |
_floatFormatHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._floatFormatHandling |
_floatParseHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._floatParseHandling |
_stringEscapeHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._stringEscapeHandling |
_culture | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._culture |
_checkAdditionalContent | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._checkAdditionalContent |
_maxDepth | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._maxDepth |
_maxDepthSet | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._maxDepthSet |
_dateFormatString | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._dateFormatString |
_dateFormatStringSet | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._dateFormatStringSet |
_typeNameAssemblyFormat | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._typeNameAssemblyFormat |
_defaultValueHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._defaultValueHandling |
_preserveReferencesHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._preserveReferencesHandling |
_nullValueHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._nullValueHandling |
_objectCreationHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._objectCreationHandling |
_missingMemberHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._missingMemberHandling |
_referenceLoopHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._referenceLoopHandling |
_context | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._context |
_constructorHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._constructorHandling |
_typeNameHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._typeNameHandling |
_metadataPropertyHandling | Internal | 0 method | Newtonsoft.Json.JsonSerializerSettings ._metadataPropertyHandling |
Length | Public | 3 methods | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Length |
Position | Public | 1 method | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Position |
Year | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Year |
Month | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Month |
Day | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Day |
Hour | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Hour |
Minute | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Minute |
Second | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Second |
Fraction | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Fraction |
ZoneHour | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .ZoneHour |
ZoneMinute | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .ZoneMinute |
Zone | Public | 0 method | Newtonsoft.Json.Utilities.DateTimeParser .Zone |
Instance | Public | 0 method | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .Instance |
IsNullable | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.IsNullable |
IsConvertable | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.IsConvertable |
IsEnum | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.IsEnum |
NonNullableUnderlyingType | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.NonNullableUnderlyingType |
InternalReadType | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.InternalReadType |
ContractType | Internal | 8 methods | Newtonsoft.Json.Serialization .JsonContract.ContractType |
IsReadOnlyOrFixedSize | Internal | 3 methods | Newtonsoft.Json.Serialization .JsonContract.IsReadOnlyOrFixedSize |
IsSealed | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.IsSealed |
IsInstantiable | Internal | 0 method | Newtonsoft.Json.Serialization .JsonContract.IsInstantiable |
_required | Internal | 2 methods | Newtonsoft.Json.Serialization .JsonProperty._required |
_hasExplicitDefaultValue | Internal | 0 method | Newtonsoft.Json.Serialization .JsonProperty._hasExplicitDefaultValue |
_listChanged | Internal | 0 method | Newtonsoft.Json.Linq.JContainer ._listChanged |
_addingNew | Internal | 1 method | Newtonsoft.Json.Linq.JContainer ._addingNew |
_collectionChanged | Internal | 1 method | Newtonsoft.Json.Linq.JContainer ._collectionChanged |
_current | Internal | 0 method | Newtonsoft.Json.Linq.JTokenReader ._current |
strings | Public | 1 method | Newtonsoft.Json.Tests.TestClass.strings |
dictionary | Public | 1 method | Newtonsoft.Json.Tests.TestClass .dictionary |
Value | Public | 0 method | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+Bucket.Value |
Name | Public | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml.Name |
notNull | Public | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml .notNull |
isNull | Public | 0 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml.isNull |
x | Public | 0 method | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+X.x |
y | Public | 0 method | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+Y.y |
Statistics
Stat | Visibility | outsideMethodsAssigningMe |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Critical Rule warning: Constructors of abstract classes should be declared as protected or private |
// Constructors of an abstract class can be accessed only from its class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.
// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.
warnif count > 0
from t in Application.Types where
t.IsClass &&
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }
View Code Query or Rule Body
3 types matched
types | ctors | Full Name |
---|---|---|
JsonContract | 1 method | Newtonsoft.Json.Serialization .JsonContract |
JToken | 1 method | Newtonsoft.Json.Linq.JToken |
JContainer | 2 methods | Newtonsoft.Json.Linq.JContainer |
Statistics
Stat | ctors |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid public methods not publicly visible |
// Matched methods are declared public but are not publicly visible by assemblies consumers.
// Their visibility level must be decreased.
warnif count > 0
from m in JustMyCode.Methods where
!m.IsPubliclyVisible && m.IsPublic &&
// Eliminate virtual methods
!m.IsVirtual &&
// Eliminate interface and delegate types
!m.ParentType.IsInterface &&
!m.ParentType.IsDelegate &&
// Eliminate default constructors
!(m.IsConstructor && m.NbParameters == 0) &&
// Eliminate operators that must be declared public
!m.IsOperator &&
// Eliminate methods generated by compiler
!m.IsGeneratedByCompiler
select mView Code Query or Rule Body
434 methods matched
methods | Full Name |
---|---|
.ctor(JsonContainerType) | Newtonsoft.Json.JsonPosition..ctor (JsonContainerType) |
get_CurrentPropertyName() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_CurrentPropertyName() |
set_CurrentPropertyName(String) | Newtonsoft.Json .JsonValidatingReader+SchemaScope .set_CurrentPropertyName(String) |
get_ArrayItemCount() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_ArrayItemCount() |
set_ArrayItemCount(Int32) | Newtonsoft.Json .JsonValidatingReader+SchemaScope .set_ArrayItemCount(Int32) |
get_IsUniqueArray() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_IsUniqueArray() |
set_IsUniqueArray(Boolean) | Newtonsoft.Json .JsonValidatingReader+SchemaScope .set_IsUniqueArray(Boolean) |
get_UniqueArrayItems() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_UniqueArrayItems() |
set_UniqueArrayItems(IList<JToken>) | Newtonsoft.Json .JsonValidatingReader+SchemaScope .set_UniqueArrayItems(IList<JToken>) |
get_CurrentItemWriter() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_CurrentItemWriter() |
set_CurrentItemWriter(JTokenWriter) | Newtonsoft.Json .JsonValidatingReader+SchemaScope .set_CurrentItemWriter(JTokenWriter) |
get_Schemas() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_Schemas() |
get_RequiredProperties() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_RequiredProperties() |
get_TokenType() | Newtonsoft.Json .JsonValidatingReader+SchemaScope .get_TokenType() |
.ctor(JTokenType,IList<JsonSchemaModel>) | Newtonsoft.Json .JsonValidatingReader+SchemaScope..ctor (JTokenType,IList<JsonSchemaModel>) |
get_DateTimeKindHandling() | Newtonsoft.Json.Bson.BsonBinaryWriter .get_DateTimeKindHandling() |
set_DateTimeKindHandling(DateTimeKind) | Newtonsoft.Json.Bson.BsonBinaryWriter .set_DateTimeKindHandling(DateTimeKind) |
.ctor(BinaryWriter) | Newtonsoft.Json.Bson.BsonBinaryWriter. .ctor(BinaryWriter) |
Flush() | Newtonsoft.Json.Bson.BsonBinaryWriter .Flush() |
Close() | Newtonsoft.Json.Bson.BsonBinaryWriter .Close() |
WriteToken(BsonToken) | Newtonsoft.Json.Bson.BsonBinaryWriter .WriteToken(BsonToken) |
WriteUtf8Bytes(String,Int32) | Newtonsoft.Json.Bson.BsonBinaryWriter .WriteUtf8Bytes(String,Int32) |
.ctor(BsonType) | Newtonsoft.Json.Bson .BsonReader+ContainerContext..ctor (BsonType) |
get_Parent() | Newtonsoft.Json.Bson.BsonToken .get_Parent() |
set_Parent(BsonToken) | Newtonsoft.Json.Bson.BsonToken .set_Parent(BsonToken) |
get_CalculatedSize() | Newtonsoft.Json.Bson.BsonToken .get_CalculatedSize() |
set_CalculatedSize(Int32) | Newtonsoft.Json.Bson.BsonToken .set_CalculatedSize(Int32) |
Add(String,BsonToken) | Newtonsoft.Json.Bson.BsonObject.Add (String,BsonToken) |
Add(BsonToken) | Newtonsoft.Json.Bson.BsonArray.Add (BsonToken) |
.ctor(Object,BsonType) | Newtonsoft.Json.Bson.BsonValue..ctor (Object,BsonType) |
get_Value() | Newtonsoft.Json.Bson.BsonValue.get_Value () |
get_ByteCount() | Newtonsoft.Json.Bson.BsonString .get_ByteCount() |
set_ByteCount(Int32) | Newtonsoft.Json.Bson.BsonString .set_ByteCount(Int32) |
get_IncludeLength() | Newtonsoft.Json.Bson.BsonString .get_IncludeLength() |
set_IncludeLength(Boolean) | Newtonsoft.Json.Bson.BsonString .set_IncludeLength(Boolean) |
.ctor(Object,Boolean) | Newtonsoft.Json.Bson.BsonString..ctor (Object,Boolean) |
get_BinaryType() | Newtonsoft.Json.Bson.BsonBinary .get_BinaryType() |
set_BinaryType(BsonBinaryType) | Newtonsoft.Json.Bson.BsonBinary .set_BinaryType(BsonBinaryType) |
.ctor(Byte[],BsonBinaryType) | Newtonsoft.Json.Bson.BsonBinary..ctor (Byte[],BsonBinaryType) |
get_Pattern() | Newtonsoft.Json.Bson.BsonRegex .get_Pattern() |
set_Pattern(BsonString) | Newtonsoft.Json.Bson.BsonRegex .set_Pattern(BsonString) |
get_Options() | Newtonsoft.Json.Bson.BsonRegex .get_Options() |
set_Options(BsonString) | Newtonsoft.Json.Bson.BsonRegex .set_Options(BsonString) |
.ctor(String,String) | Newtonsoft.Json.Bson.BsonRegex..ctor (String,String) |
get_Name() | Newtonsoft.Json.Bson.BsonProperty .get_Name() |
set_Name(BsonString) | Newtonsoft.Json.Bson.BsonProperty .set_Name(BsonString) |
get_Value() | Newtonsoft.Json.Bson.BsonProperty .get_Value() |
set_Value(BsonToken) | Newtonsoft.Json.Bson.BsonProperty .set_Value(BsonToken) |
.ctor(XmlNode) | Newtonsoft.Json.Converters .XmlNodeWrapper..ctor(XmlNode) |
.ctor(XmlDocument) | Newtonsoft.Json.Converters .XmlDocumentWrapper..ctor(XmlDocument) |
.ctor(XmlElement) | Newtonsoft.Json.Converters .XmlElementWrapper..ctor(XmlElement) |
.ctor(XmlDeclaration) | Newtonsoft.Json.Converters .XmlDeclarationWrapper..ctor (XmlDeclaration) |
.ctor(XmlDocumentType) | Newtonsoft.Json.Converters .XmlDocumentTypeWrapper..ctor (XmlDocumentType) |
.ctor(XObject) | Newtonsoft.Json.Converters .XObjectWrapper..ctor(XObject) |
.ctor(XDeclaration) | Newtonsoft.Json.Converters .XDeclarationWrapper..ctor(XDeclaration) |
.ctor(XDocumentType) | Newtonsoft.Json.Converters .XDocumentTypeWrapper..ctor (XDocumentType) |
.ctor(XContainer) | Newtonsoft.Json.Converters .XContainerWrapper..ctor(XContainer) |
.ctor(XDocument) | Newtonsoft.Json.Converters .XDocumentWrapper..ctor(XDocument) |
.ctor(XText) | Newtonsoft.Json.Converters.XTextWrapper. .ctor(XText) |
.ctor(XComment) | Newtonsoft.Json.Converters .XCommentWrapper..ctor(XComment) |
.ctor(XProcessingInstruction) | Newtonsoft.Json.Converters .XProcessingInstructionWrapper..ctor (XProcessingInstruction) |
.ctor(XAttribute) | Newtonsoft.Json.Converters .XAttributeWrapper..ctor(XAttribute) |
.ctor(XElement) | Newtonsoft.Json.Converters .XElementWrapper..ctor(XElement) |
.ctor(TextWriter) | Newtonsoft.Json.Utilities.Base64Encoder. .ctor(TextWriter) |
Encode(Byte[],Int32,Int32) | Newtonsoft.Json.Utilities.Base64Encoder .Encode(Byte[],Int32,Int32) |
Flush() | Newtonsoft.Json.Utilities.Base64Encoder .Flush() |
.ctor(IEqualityComparer<TFirst> ,IEqualityComparer<TSecond>) | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> ..ctor(IEqualityComparer<TFirst> ,IEqualityComparer<TSecond>) |
.ctor(IEqualityComparer<TFirst> ,IEqualityComparer<TSecond>,String ,String) | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> ..ctor(IEqualityComparer<TFirst> ,IEqualityComparer<TSecond>,String ,String) |
Set(TFirst,TSecond) | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> .Set(TFirst,TSecond) |
TryGetByFirst(TFirst,TSecond&) | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> .TryGetByFirst(TFirst,TSecond&) |
TryGetBySecond(TSecond,TFirst&) | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> .TryGetBySecond(TSecond,TFirst&) |
IsNullOrEmpty<T>(ICollection<T>) | Newtonsoft.Json.Utilities .CollectionUtils.IsNullOrEmpty<T> (ICollection<T>) |
AddRange<T>(IList<T>,IEnumerable<T>) | Newtonsoft.Json.Utilities .CollectionUtils.AddRange<T>(IList<T> ,IEnumerable<T>) |
IsDictionaryType(Type) | Newtonsoft.Json.Utilities .CollectionUtils.IsDictionaryType(Type) |
ResolveEnumableCollectionConstructor (Type,Type) | Newtonsoft.Json.Utilities .CollectionUtils .ResolveEnumableCollectionConstructor (Type,Type) |
AddDistinct<T>(IList<T>,T) | Newtonsoft.Json.Utilities .CollectionUtils.AddDistinct<T>(IList<T> ,T) |
AddDistinct<T>(IList<T>,T ,IEqualityComparer<T>) | Newtonsoft.Json.Utilities .CollectionUtils.AddDistinct<T>(IList<T> ,T,IEqualityComparer<T>) |
ContainsValue<TSource>(IEnumerable <TSource>,TSource,IEqualityComparer <TSource>) | Newtonsoft.Json.Utilities .CollectionUtils.ContainsValue<TSource> (IEnumerable<TSource>,TSource ,IEqualityComparer<TSource>) |
AddRangeDistinct<T>(IList<T>,IEnumerable <T>,IEqualityComparer<T>) | Newtonsoft.Json.Utilities .CollectionUtils.AddRangeDistinct<T> (IList<T>,IEnumerable<T> ,IEqualityComparer<T>) |
IndexOf<T>(IEnumerable<T>,Func<T,Boolean >) | Newtonsoft.Json.Utilities .CollectionUtils.IndexOf<T>(IEnumerable <T>,Func<T,Boolean>) |
IndexOf<TSource>(IEnumerable<TSource> ,TSource,IEqualityComparer<TSource>) | Newtonsoft.Json.Utilities .CollectionUtils.IndexOf<TSource> (IEnumerable<TSource>,TSource ,IEqualityComparer<TSource>) |
ToMultidimensionalArray(IList,Type,Int32 ) | Newtonsoft.Json.Utilities .CollectionUtils.ToMultidimensionalArray (IList,Type,Int32) |
.ctor(IList) | Newtonsoft.Json.Utilities .CollectionWrapper<T>..ctor(IList) |
.ctor(ICollection<T>) | Newtonsoft.Json.Utilities .CollectionWrapper<T>..ctor(ICollection <T>) |
get_Type() | Newtonsoft.Json.Utilities .TypeInformation.get_Type() |
set_Type(Type) | Newtonsoft.Json.Utilities .TypeInformation.set_Type(Type) |
get_TypeCode() | Newtonsoft.Json.Utilities .TypeInformation.get_TypeCode() |
set_TypeCode(PrimitiveTypeCode) | Newtonsoft.Json.Utilities .TypeInformation.set_TypeCode (PrimitiveTypeCode) |
GetTypeCode(Type) | Newtonsoft.Json.Utilities.ConvertUtils .GetTypeCode(Type) |
GetTypeCode(Object) | Newtonsoft.Json.Utilities.ConvertUtils .GetTypeCode(Object) |
GetTypeInformation(IConvertible) | Newtonsoft.Json.Utilities.ConvertUtils .GetTypeInformation(IConvertible) |
IsConvertible(Type) | Newtonsoft.Json.Utilities.ConvertUtils .IsConvertible(Type) |
ParseTimeSpan(String) | Newtonsoft.Json.Utilities.ConvertUtils .ParseTimeSpan(String) |
FromBigInteger(BigInteger,Type) | Newtonsoft.Json.Utilities.ConvertUtils .FromBigInteger(BigInteger,Type) |
Convert(Object,CultureInfo,Type) | Newtonsoft.Json.Utilities.ConvertUtils .Convert(Object,CultureInfo,Type) |
ConvertOrCast(Object,CultureInfo,Type) | Newtonsoft.Json.Utilities.ConvertUtils .ConvertOrCast(Object,CultureInfo,Type) |
ToValue(INullable) | Newtonsoft.Json.Utilities.ConvertUtils .ToValue(INullable) |
IsInteger(Object) | Newtonsoft.Json.Utilities.ConvertUtils .IsInteger(Object) |
Int32TryParse(Char[],Int32,Int32,Int32&) | Newtonsoft.Json.Utilities.ConvertUtils .Int32TryParse(Char[],Int32,Int32,Int32& ) |
Int64TryParse(Char[],Int32,Int32,Int64&) | Newtonsoft.Json.Utilities.ConvertUtils .Int64TryParse(Char[],Int32,Int32,Int64& ) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
461
Purity - Immutability - Side-Effects |
|
![]() | Rule warning: Fields should be marked as ReadOnly when possible |
warnif count > 0
from f in JustMyCode.Fields where
f.IsImmutable &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }
// A field that matches the condition IsImmutable
// is a field that is assigned only by constructors
// of its class.
// For an instance field, this means its value
// will remain constant throught the lifetime
// of the object.
// For a static field, this means its value will
// remain constant throught the lifetime of the
// program.
// In both cases, such field can safely be marked
// with the C# readonly keyword
// (ReadOnly in VB.NET).
// The condition IsInitOnly matches fields that
// are marked with the C# readonly keyword
// (ReadOnly in VB.NET).
View Code Query or Rule Body
32 fields matched
fields | Size of instance | Full Name |
---|---|---|
_syncRoot | 4 | Newtonsoft.Json.Utilities .CollectionWrapper<T>._syncRoot |
_syncRoot | 4 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> ._syncRoot |
_serializing | 1 | Newtonsoft.Json.Serialization .JsonSerializerInternalBase._serializing |
_syncRoot | 4 | Newtonsoft.Json.Linq.JContainer ._syncRoot |
bytes | 4 | Newtonsoft.Json.Tests.SlowStream.bytes |
bytesPerRead | 4 | Newtonsoft.Json.Tests.SlowStream .bytesPerRead |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql .Department.emptyChangingEventArgs |
_Persons | 4 | Newtonsoft.Json.Tests.LinqToSql .Department._Persons |
mappingSource | N/A | Newtonsoft.Json.Tests.LinqToSql .LinqToSqlClassesDataContext .mappingSource |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql.Person .emptyChangingEventArgs |
_PersonRoles | 4 | Newtonsoft.Json.Tests.LinqToSql.Person ._PersonRoles |
_Department | 8 | Newtonsoft.Json.Tests.LinqToSql.Person ._Department |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql.Role .emptyChangingEventArgs |
_PersonRoles | 4 | Newtonsoft.Json.Tests.LinqToSql.Role ._PersonRoles |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql .PersonRole.emptyChangingEventArgs |
_Person | 8 | Newtonsoft.Json.Tests.LinqToSql .PersonRole._Person |
_Role | 8 | Newtonsoft.Json.Tests.LinqToSql .PersonRole._Role |
_additionalData | 4 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+CustomerInvoice ._additionalData |
_name | 4 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryKeyCast ._name |
_number | 4 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryKeyCast ._number |
_name | 4 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DataContractPrivateM embers._name |
_dict1 | 4 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ThisGenericTest<T> ._dict1 |
_privateString | 4 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+PrivateMembersClassW ithAttributes._privateString |
element | N/A | Newtonsoft.Json.Tests.Serialization .ThrowingReader.element |
tableCustomers | 4 | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersRow .tableCustomers |
_additionalData | 4 | Newtonsoft.Json.Tests.TestObjects .DirectoryAccount._additionalData |
_time | 8 | Newtonsoft.Json.Tests.TestObjects.Event ._time |
_property | 4 | Newtonsoft.Json.Tests.TestObjects .JsonIgnoreAttributeOnClassTestClass ._property |
_ignoredProperty | 4 | Newtonsoft.Json.Tests.TestObjects .JsonIgnoreAttributeOnClassTestClass ._ignoredProperty |
_property | 4 | Newtonsoft.Json.Tests.TestObjects .JsonIgnoreAttributeTestClass._property |
_ignoredProperty | 4 | Newtonsoft.Json.Tests.TestObjects .JsonIgnoreAttributeTestClass ._ignoredProperty |
_privateString | 4 | Newtonsoft.Json.Tests.TestObjects .PrivateMembersClass._privateString |
Statistics
Stat | Size of instance |
---|---|
Sum: | 117 |
Average: | 4.5 |
Minimum: | 1 |
Maximum: | 8 |
Standard deviation: | 1.6 |
Variance: | 2.56 |
![]() | Rule warning: Structures should be immutable |
warnif count > 0 from t in Application.Types where
t.IsStructure &&
!t.IsImmutable
let mutableFields = t.Fields.Where(f => !f.IsImmutable)
select new { t, t.NbLinesOfCode, mutableFields }
// It is deemed as a good practice to make
// your structure immutable.
// An object is immutable if its state doesn’t
// change once the object has been created.
// Consequently, a structure is immutable if
// its instances are immutable.
// Immutable types naturally simplify code by
// limiting side-effects.
// See some explanations on immutability and
// how NDepend supports it here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx
View Code Query or Rule Body
9 types matched
types | # lines of code (LOC) | mutableFields | Full Name |
---|---|---|---|
JsonPosition | 31 | 4 fields | Newtonsoft.Json.JsonPosition |
DateTimeParser | 78 | 13 fields | Newtonsoft.Json.Utilities.DateTimeParser |
DefaultStruct | 0 | 1 field | Newtonsoft.Json.Tests.Serialization .DefaultStruct |
JsonSerializerTest+StructWithAttribute | 0 | 2 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+StructWithAttribute |
JsonSerializerTest+Vector | 1 | 3 fields | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector |
JsonSerializerTest+StructISerializable | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+StructISerializable |
StructTest | 0 | 4 fields | Newtonsoft.Json.Tests.TestObjects .StructTest |
WidgetId | 0 | 1 field | Newtonsoft.Json.Tests.TestObjects .WidgetId |
WidgetId1 | 0 | 1 field | Newtonsoft.Json.Tests.TestObjects .WidgetId1 |
Statistics
Stat | # lines of code (LOC) | mutableFields |
---|---|---|
Sum: | 114 | 0 |
Average: | 12.67 | 0 |
Minimum: | 0 | 0 |
Maximum: | 78 | 0 |
Standard deviation: | 24.98 | 0 |
Variance: | 624.22 | 0 |
![]() | Rule warning: Property Getters should be immutable |
warnif count > 0 from m in Application.Methods where
m.IsPropertyGetter &&
( ( !m.IsStatic && m.ChangesObjectState) ||
( m.IsStatic && m.ChangesTypeState) )
let fieldsAssigned = m.FieldsAssigned
select new { m, m.NbLinesOfCode, fieldsAssigned }
// This rule might be violated in the case of object lazy initialized
// when the property getter is accessed the first time.
// But in general, the callers of a property
// doesn't expect to change any state through the call.
View Code Query or Rule Body
19 methods matched
methods | # lines of code (LOC) | fieldsAssigned | Full Name |
---|---|---|---|
get_Converters() | 3 | 1 field | Newtonsoft.Json.JsonSerializer .get_Converters() |
get_Base64Encoder() | 3 | 1 field | Newtonsoft.Json.JsonTextWriter .get_Base64Encoder() |
get_ChildNodes() | 3 | 1 field | Newtonsoft.Json.Converters .XmlNodeWrapper.get_ChildNodes() |
get_ChildNodes() | 3 | 1 field | Newtonsoft.Json.Converters .XContainerWrapper.get_ChildNodes() |
get_OnDeserializedCallbacks() | 3 | 1 field | Newtonsoft.Json.Serialization .JsonContract .get_OnDeserializedCallbacks() |
get_OnDeserializingCallbacks() | 3 | 1 field | Newtonsoft.Json.Serialization .JsonContract .get_OnDeserializingCallbacks() |
get_OnSerializedCallbacks() | 3 | 1 field | Newtonsoft.Json.Serialization .JsonContract.get_OnSerializedCallbacks( ) |
get_OnSerializingCallbacks() | 3 | 1 field | Newtonsoft.Json.Serialization .JsonContract.get_OnSerializingCallbacks () |
get_OnErrorCallbacks() | 3 | 1 field | Newtonsoft.Json.Serialization .JsonContract.get_OnErrorCallbacks() |
get_HasRequiredOrDefaultValueProperties( ) | 12 | 1 field | Newtonsoft.Json.Serialization .JsonObjectContract .get_HasRequiredOrDefaultValueProperties () |
get_DefaultReferenceMappings() | 3 | 1 field | Newtonsoft.Json.Serialization .JsonSerializerInternalBase .get_DefaultReferenceMappings() |
get_DynamicCodeGeneration() | 10 | 1 field | Newtonsoft.Json.Serialization .JsonTypeReflector .get_DynamicCodeGeneration() |
get_FullyTrusted() | 4 | 1 field | Newtonsoft.Json.Serialization .JsonTypeReflector.get_FullyTrusted() |
get_EqualityComparer() | 3 | 1 field | Newtonsoft.Json.Linq.JToken .get_EqualityComparer() |
get_File() | 3 | 1 field | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities .get_File() |
get_Folder() | 3 | 1 field | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities .get_Folder() |
get_Data() | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .PropertyItemReferenceLoopHandling .get_Data() |
get_Value() | 4 | 1 field | Newtonsoft.Json.Tests.Serialization .ReferenceLoopHandlingObjectContainerAtt ributeWithPropertyOverride.get_Value() |
get_Properties() | 1 | 1 field | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.get_Properties() |
Statistics
Stat | # lines of code (LOC) | fieldsAssigned |
---|---|---|
Sum: | 74 | 0 |
Average: | 3.89 | 0 |
Minimum: | 1 | 0 |
Maximum: | 12 | 0 |
Standard deviation: | 2.53 | 0 |
Variance: | 6.41 | 0 |
![]() | Rule warning: Avoid static fields with a mutable field type |
warnif count > 0
from f in Application.Fields
where f.IsStatic && !f.IsEnumValue && !f.IsGeneratedByCompiler && !f.IsLiteral
let fieldType = f.FieldType
where fieldType != null &&
!fieldType.IsThirdParty &&
!fieldType.IsInterface &&
!fieldType.IsImmutable
select new { f,
mutableFieldType = fieldType ,
isFieldImmutable = f.IsImmutable,
isFieldIsReadOnly = f.IsInitOnly }
// As explained in this blog post
// http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members
// static fields should be used to hold only constant and immutable states.
View Code Query or Rule Body
13 fields matched
fields | mutableFieldType | isFieldImmutable | isFieldIsReadOnly | Full Name |
---|---|---|---|---|
_reflectionObject | ReflectionObject | False | False | Newtonsoft.Json.Converters .EntityKeyMemberConverter ._reflectionObject |
ReflectionObjectPerType | ThreadSafeStore<TKey,TValue> | True | True | Newtonsoft.Json.Converters .KeyValuePairConverter .ReflectionObjectPerType |
EnumMemberNamesPerType | ThreadSafeStore<TKey,TValue> | True | True | Newtonsoft.Json.Converters .StringEnumConverter .EnumMemberNamesPerType |
CastConverters | ThreadSafeStore<TKey,TValue> | True | True | Newtonsoft.Json.Utilities.ConvertUtils .CastConverters |
_getMemberCall | MethodCall<T,TResult> | False | False | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper ._getMemberCall |
_setMemberCall | MethodCall<T,TResult> | False | False | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper ._setMemberCall |
TypeAttributeCache | ThreadSafeStore<TKey,TValue> | True | True | Newtonsoft.Json.Serialization .CachedAttributeGetter<T> .TypeAttributeCache |
Instance | DefaultSerializationBinder | True | True | Newtonsoft.Json.Serialization .DefaultSerializationBinder.Instance |
JsonConverterCreatorCache | ThreadSafeStore<TKey,TValue> | True | True | Newtonsoft.Json.Serialization .JsonTypeReflector .JsonConverterCreatorCache |
AssociatedMetadataTypesCache | ThreadSafeStore<TKey,TValue> | True | True | Newtonsoft.Json.Serialization .JsonTypeReflector .AssociatedMetadataTypesCache |
_metadataTypeAttributeReflectionObject | ReflectionObject | False | False | Newtonsoft.Json.Serialization .JsonTypeReflector ._metadataTypeAttributeReflectionObject |
Instance | ShouldSerializeContractResolver | True | True | Newtonsoft.Json.Tests.Documentation .ShouldSerializeContractResolver .Instance |
Instance | ConverterContractResolver | True | True | Newtonsoft.Json.Tests.Documentation .ConverterContractResolver.Instance |
Statistics
Stat | mutableFieldType | isFieldImmutable | isFieldIsReadOnly |
---|---|---|---|
Sum: | 0 | 0 | 0 |
Average: | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 |
![]() | Rule warning: A field must not be assigned from outside its parent hierarchy types |
warnif count > 0
from f in JustMyCode.Fields.Where(f =>
!f.IsPrivate && !f.IsGeneratedByCompiler &&
!f.IsImmutable && !f.IsEnumValue)
let methodsAssignerOutsideOfMyType = f.MethodsAssigningMe.Where(
m =>!m.IsGeneratedByCompiler &&
m.ParentType != f.ParentType &&
!m.ParentType.DeriveFrom(f.ParentType) )
where methodsAssignerOutsideOfMyType.Count() > 0
select new { f, methodsAssignerOutsideOfMyType }View Code Query or Rule Body
72 fields matched
fields | methodsAssignerOutsideOfMyType | Full Name |
---|---|---|
Position | 2 methods | Newtonsoft.Json.JsonPosition.Position |
PropertyName | 2 methods | Newtonsoft.Json.JsonPosition .PropertyName |
Length | 3 methods | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Length |
Position | 1 method | Newtonsoft.Json.Bson .BsonReader+ContainerContext.Position |
_required | 2 methods | Newtonsoft.Json.Serialization .JsonProperty._required |
_addingNew | 1 method | Newtonsoft.Json.Linq.JContainer ._addingNew |
_collectionChanged | 1 method | Newtonsoft.Json.Linq.JContainer ._collectionChanged |
strings | 1 method | Newtonsoft.Json.Tests.TestClass.strings |
dictionary | 1 method | Newtonsoft.Json.Tests.TestClass .dictionary |
Name | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml.Name |
notNull | 1 method | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+NullableXml .notNull |
Explicit | 1 method | Newtonsoft.Json.Tests.Serialization .TestDynamicObject.Explicit |
_extensionData | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataDeseria lizeWithNonDefaultConstructor ._extensionData |
ExtensionData | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+FieldExtensionDataAt tributeTestClass.ExtensionData |
ExtensionData | 3 methods | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClass.ExtensionData |
ExtensionData | 1 method | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoWriteExtensi onDataAttributeTestClass.ExtensionData |
TimeSpanField | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ClassWithTimeSpan .TimeSpanField |
X | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector.X |
Y | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector.Y |
Z | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Vector.Z |
Position | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+VectorParent .Position |
Value | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConvertibleId.Value |
Id | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+TestClassConvertable .Id |
X | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+TestClassConvertable .X |
x | 2 methods | Newtonsoft.Json.Tests.Serialization .StaticTestClass.x |
y | 2 methods | Newtonsoft.Json.Tests.Serialization .StaticTestClass.y |
_shouldSerializeName | 2 methods | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTestClass ._shouldSerializeName |
WeightSpecified | 2 methods | Newtonsoft.Json.Tests.Serialization .SpecifiedTestClass.WeightSpecified |
HeightSpecified | 2 methods | Newtonsoft.Json.Tests.Serialization .SpecifiedTestClass.HeightSpecified |
publicField | 2 methods | Newtonsoft.Json.Tests.Serialization .SerializableType.publicField |
internalField | 2 methods | Newtonsoft.Json.Tests.Serialization .SerializableType.internalField |
protectedInternalField | 2 methods | Newtonsoft.Json.Tests.Serialization .SerializableType.protectedInternalField |
nonSerializedField | 2 methods | Newtonsoft.Json.Tests.Serialization .SerializableType.nonSerializedField |
inheritedTypeField | 1 method | Newtonsoft.Json.Tests.Serialization .InheritedType.inheritedTypeField |
no | 1 method | Newtonsoft.Json.Tests.TestObjects.Aa.no |
no | 1 method | Newtonsoft.Json.Tests.TestObjects.Bb.no |
GuidField | 1 method | Newtonsoft.Json.Tests.TestObjects .ClassWithGuid.GuidField |
Children | 1 method | Newtonsoft.Json.Tests.TestObjects .Content.Children |
Text | 1 method | Newtonsoft.Json.Tests.TestObjects .Content.Text |
TestField1 | 1 method | Newtonsoft.Json.Tests.TestObjects .DefaultValueAttributeTestClass .TestField1 |
Components | 1 method | Newtonsoft.Json.Tests.TestObjects .GameObject.Components |
Field | 1 method | Newtonsoft.Json.Tests.TestObjects .JsonIgnoreAttributeOnClassTestClass .Field |
Pie | 1 method | Newtonsoft.Json.Tests.TestObjects .JsonPropertyClass.Pie |
serverClassName | 1 method | Newtonsoft.Json.Tests.TestObjects .MethodExecutorObject.serverClassName |
serverMethodParams | 1 method | Newtonsoft.Json.Tests.TestObjects .MethodExecutorObject.serverMethodParams |
clientGetResultFunction | 1 method | Newtonsoft.Json.Tests.TestObjects .MethodExecutorObject .clientGetResultFunction |
Name | 18 methods | Newtonsoft.Json.Tests.TestObjects .Product.Name |
ExpiryDate | 16 methods | Newtonsoft.Json.Tests.TestObjects .Product.ExpiryDate |
Price | 14 methods | Newtonsoft.Json.Tests.TestObjects .Product.Price |
Sizes | 11 methods | Newtonsoft.Json.Tests.TestObjects .Product.Sizes |
Color | 2 methods | Newtonsoft.Json.Tests.TestObjects.Store .Color |
Establised | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .Establised |
Width | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .Width |
Employees | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .Employees |
Open | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .Open |
Mottos | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .Mottos |
Cost | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .Cost |
product | 1 method | Newtonsoft.Json.Tests.TestObjects.Store .product |
StringField | 2 methods | Newtonsoft.Json.Tests.TestObjects .StructTest.StringField |
IntField | 2 methods | Newtonsoft.Json.Tests.TestObjects .StructTest.IntField |
Id | 1 method | Newtonsoft.Json.Tests.TestObjects .UserNullable.Id |
FName | 1 method | Newtonsoft.Json.Tests.TestObjects .UserNullable.FName |
LName | 1 method | Newtonsoft.Json.Tests.TestObjects .UserNullable.LName |
RoleId | 1 method | Newtonsoft.Json.Tests.TestObjects .UserNullable.RoleId |
NullableRoleId | 1 method | Newtonsoft.Json.Tests.TestObjects .UserNullable.NullableRoleId |
Active | 1 method | Newtonsoft.Json.Tests.TestObjects .UserNullable.Active |
StringField | 1 method | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s+StaticTestClass.StringField |
StringField | 1 method | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s+FieldsTestClass.StringField |
BoolField | 1 method | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s+FieldsTestClass.BoolField |
Level | 2 methods | Newtonsoft.Json.Tests.Documentation .LogEventInfo.Level |
Message | 2 methods | Newtonsoft.Json.Tests.Documentation .LogEventInfo.Message |
Exception | 2 methods | Newtonsoft.Json.Tests.Documentation .LogEventInfo.Exception |
Statistics
Stat | methodsAssignerOutsideOfMyType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Critical Rule warning: Don't assign a field from many methods |
warnif count > 0
from f in JustMyCode.Fields where
!f.IsEnumValue &&
!f.IsImmutable &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
!f.IsEventDelegateObject &&
(f.IsPrivate || f.IsProtected) // Don't match fields assigned outside their classes.
// The threshold 4 is arbitrary and it should avoid matching too many fields.
// Threshold is even lower for static fields because this reveals situations even more complex.
where f.MethodsAssigningMe.Count() >= (!f.IsStatic ? 4 : 2)
select new { f,
f.MethodsAssigningMe,
f.MethodsReadingMeButNotAssigningMe,
f.MethodsUsingMe,
f.ParentType }
// A field assigned from many methods is a symptom of bug-prone code.
// This situation makes harder to anticipate the field state during runtime.
// The code is then hard to read, hard to debug and hard to maintain.
// Hard-to-solve bugs due to corrupted state are often the consequence of fields anarchically assigned.
//
// The situation is even more complex if the field is static.
// Indeed, this potentially involves global random accesses from different parts of the application.
// This is why this rule provides a lower threshold for static fields.
//
// If the object containing such field is meant to be used from multiple threads,
// there are alarming chances that the code is unmaintainable and bugged.
// When multiple threads are involved, the rule of thumb is to use immutable objects.
//
// If the field type is a reference type (interfaces, classes, strings, delegates)
// corrupted state might result in a NullReferenceException.
// If the field type is a value type (number, boolean, structure)
// corrupted state might result in wrong result not even signaled by an exception sent.
//
// There is no straight advice to refactor the number of methods responsible for assigning a field.
// Solutions often involve rethinking and then rewriting a complex algorithm.
// Such field can sometime become just a variable accessed locally by a method or a closure.
// Sometime, just rethinking the life-time and the role of the parent object allows the field to become immutable
// (i.e assigned only by the constructor).
View Code Query or Rule Body
6 fields matched
fields | MethodsAssigningMe | MethodsReadingMeButNotAssigningMe | MethodsUsingMe | ParentType | Full Name |
---|---|---|---|---|---|
_charPos | 17 methods | 7 methods | 24 methods | JsonTextReader | Newtonsoft.Json.JsonTextReader._charPos |
_stringReference | 5 methods | 3 methods | 8 methods | JsonTextReader | Newtonsoft.Json.JsonTextReader ._stringReference |
_position | 4 methods | 3 methods | 7 methods | StringBuffer | Newtonsoft.Json.Utilities.StringBuffer ._position |
_dynamicCodeGeneration | 2 methods | 0 method | 2 methods | JsonTypeReflector | Newtonsoft.Json.Serialization .JsonTypeReflector ._dynamicCodeGeneration |
_fullyTrusted | 2 methods | 0 method | 2 methods | JsonTypeReflector | Newtonsoft.Json.Serialization .JsonTypeReflector._fullyTrusted |
_currentIndex | 11 methods | 2 methods | 13 methods | JPath | Newtonsoft.Json.Linq.JsonPath.JPath ._currentIndex |
Statistics
Stat | MethodsAssigningMe | MethodsReadingMeButNotAssigningMe | MethodsUsingMe | ParentType |
---|---|---|---|---|
Sum: | 0 | 0 | 0 | 0 |
Average: | 0 | 0 | 0 | 0 |
Minimum: | 0 | 0 | 0 | 0 |
Maximum: | 0 | 0 | 0 | 0 |
Standard deviation: | 0 | 0 | 0 | 0 |
Variance: | 0 | 0 | 0 | 0 |
![]() | Rule warning: Do not declare read only mutable reference types |
warnif count > 0 from f in JustMyCode.Fields where
f.IsInitOnly &&
!f.ParentType.IsPrivate &&
!f.IsPrivate &&
f.FieldType != null &&
f.FieldType.IsClass &&
!f.FieldType.IsThirdParty &&
!f.FieldType.IsImmutable
select new { f, f.FieldType, FieldVisibility = f.Visibility }
// This rule is violated when a public or internal
// type contains a public or internal read-only field
// that is a mutable reference type.
//
// This situation provides the wrong impression that the
// value can't change, when actually it's only the field
// value that can't change, rather than the object.
//
// To fix a violation of this rule, remove the read-only
// modifier or, if a breaking change is acceptable,
// replace the field with an immutable type.
//
// An object is immutable if its state doesn’t
// change once the object has been created.
// Consequently, a class or a structure is
// immutable if its instances are immutable.
// Immutable types naturally simplify code by
// limiting side-effects.
View Code Query or Rule Body
4 fields matched
fields | FieldType | FieldVisibility | Full Name |
---|---|---|---|
Instance | DefaultSerializationBinder | Internal | Newtonsoft.Json.Serialization .DefaultSerializationBinder.Instance |
Serializer | JsonSerializer | Internal | Newtonsoft.Json.Serialization .JsonSerializerInternalBase.Serializer |
Instance | ShouldSerializeContractResolver | Public | Newtonsoft.Json.Tests.Documentation .ShouldSerializeContractResolver .Instance |
Instance | ConverterContractResolver | Public | Newtonsoft.Json.Tests.Documentation .ConverterContractResolver.Instance |
Statistics
Stat | FieldType | FieldVisibility |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
881
Naming Conventions |
|
![]() | Rule warning: Instance fields should be prefixed with a 'm_' |
warnif count > 0 from f in Application.Fields where
!f.NameLike (@"^m_") &&
!f.IsStatic &&
!f.IsLiteral &&
!f.IsGeneratedByCompiler &&
!f.IsSpecialName &&
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }
// This naming convention provokes debate.
// Don't hesitate to customize the regex of
// NameLike to your preference.View Code Query or Rule Body
656 fields matched
fields | Size of instance | Full Name |
---|---|---|
_tokenType | 4 | Newtonsoft.Json.JsonReader._tokenType |
_value | 4 | Newtonsoft.Json.JsonReader._value |
_quoteChar | 2 | Newtonsoft.Json.JsonReader._quoteChar |
_currentState | 4 | Newtonsoft.Json.JsonReader._currentState |
_readType | 4 | Newtonsoft.Json.JsonReader._readType |
_currentPosition | 13 | Newtonsoft.Json.JsonReader ._currentPosition |
_culture | 4 | Newtonsoft.Json.JsonReader._culture |
_dateTimeZoneHandling | 4 | Newtonsoft.Json.JsonReader ._dateTimeZoneHandling |
_maxDepth | 5 | Newtonsoft.Json.JsonReader._maxDepth |
_hasExceededMaxDepth | 1 | Newtonsoft.Json.JsonReader ._hasExceededMaxDepth |
_dateParseHandling | 4 | Newtonsoft.Json.JsonReader ._dateParseHandling |
_floatParseHandling | 4 | Newtonsoft.Json.JsonReader ._floatParseHandling |
_dateFormatString | 4 | Newtonsoft.Json.JsonReader ._dateFormatString |
_stack | 4 | Newtonsoft.Json.JsonReader._stack |
_stack | 4 | Newtonsoft.Json.JsonWriter._stack |
_currentPosition | 13 | Newtonsoft.Json.JsonWriter ._currentPosition |
_currentState | 4 | Newtonsoft.Json.JsonWriter._currentState |
_formatting | 4 | Newtonsoft.Json.JsonWriter._formatting |
_dateFormatHandling | 4 | Newtonsoft.Json.JsonWriter ._dateFormatHandling |
_dateTimeZoneHandling | 4 | Newtonsoft.Json.JsonWriter ._dateTimeZoneHandling |
_stringEscapeHandling | 4 | Newtonsoft.Json.JsonWriter ._stringEscapeHandling |
_floatFormatHandling | 4 | Newtonsoft.Json.JsonWriter ._floatFormatHandling |
_dateFormatString | 4 | Newtonsoft.Json.JsonWriter ._dateFormatString |
_culture | 4 | Newtonsoft.Json.JsonWriter._culture |
_isReference | 5 | Newtonsoft.Json.JsonContainerAttribute ._isReference |
_itemIsReference | 5 | Newtonsoft.Json.JsonContainerAttribute ._itemIsReference |
_itemReferenceLoopHandling | 5 | Newtonsoft.Json.JsonContainerAttribute ._itemReferenceLoopHandling |
_itemTypeNameHandling | 5 | Newtonsoft.Json.JsonContainerAttribute ._itemTypeNameHandling |
_allowNullItems | 1 | Newtonsoft.Json.JsonArrayAttribute ._allowNullItems |
_converterType | 4 | Newtonsoft.Json.JsonConverterAttribute ._converterType |
_memberSerialization | 4 | Newtonsoft.Json.JsonObjectAttribute ._memberSerialization |
_itemRequired | 5 | Newtonsoft.Json.JsonObjectAttribute ._itemRequired |
Type | 4 | Newtonsoft.Json.JsonPosition.Type |
Position | 4 | Newtonsoft.Json.JsonPosition.Position |
PropertyName | 4 | Newtonsoft.Json.JsonPosition .PropertyName |
HasIndex | 1 | Newtonsoft.Json.JsonPosition.HasIndex |
_nullValueHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._nullValueHandling |
_defaultValueHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._defaultValueHandling |
_referenceLoopHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._referenceLoopHandling |
_objectCreationHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._objectCreationHandling |
_typeNameHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._typeNameHandling |
_isReference | 5 | Newtonsoft.Json.JsonPropertyAttribute ._isReference |
_order | 5 | Newtonsoft.Json.JsonPropertyAttribute ._order |
_required | 5 | Newtonsoft.Json.JsonPropertyAttribute ._required |
_itemIsReference | 5 | Newtonsoft.Json.JsonPropertyAttribute ._itemIsReference |
_itemReferenceLoopHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._itemReferenceLoopHandling |
_itemTypeNameHandling | 5 | Newtonsoft.Json.JsonPropertyAttribute ._itemTypeNameHandling |
_typeNameHandling | 4 | Newtonsoft.Json.JsonSerializer ._typeNameHandling |
_typeNameAssemblyFormat | 4 | Newtonsoft.Json.JsonSerializer ._typeNameAssemblyFormat |
_preserveReferencesHandling | 4 | Newtonsoft.Json.JsonSerializer ._preserveReferencesHandling |
_referenceLoopHandling | 4 | Newtonsoft.Json.JsonSerializer ._referenceLoopHandling |
_missingMemberHandling | 4 | Newtonsoft.Json.JsonSerializer ._missingMemberHandling |
_objectCreationHandling | 4 | Newtonsoft.Json.JsonSerializer ._objectCreationHandling |
_nullValueHandling | 4 | Newtonsoft.Json.JsonSerializer ._nullValueHandling |
_defaultValueHandling | 4 | Newtonsoft.Json.JsonSerializer ._defaultValueHandling |
_constructorHandling | 4 | Newtonsoft.Json.JsonSerializer ._constructorHandling |
_metadataPropertyHandling | 4 | Newtonsoft.Json.JsonSerializer ._metadataPropertyHandling |
_converters | 4 | Newtonsoft.Json.JsonSerializer ._converters |
_contractResolver | 4 | Newtonsoft.Json.JsonSerializer ._contractResolver |
_traceWriter | 4 | Newtonsoft.Json.JsonSerializer ._traceWriter |
_binder | 4 | Newtonsoft.Json.JsonSerializer._binder |
_context | 8 | Newtonsoft.Json.JsonSerializer._context |
_referenceResolver | 4 | Newtonsoft.Json.JsonSerializer ._referenceResolver |
_formatting | 5 | Newtonsoft.Json.JsonSerializer ._formatting |
_dateFormatHandling | 5 | Newtonsoft.Json.JsonSerializer ._dateFormatHandling |
_dateTimeZoneHandling | 5 | Newtonsoft.Json.JsonSerializer ._dateTimeZoneHandling |
_dateParseHandling | 5 | Newtonsoft.Json.JsonSerializer ._dateParseHandling |
_floatFormatHandling | 5 | Newtonsoft.Json.JsonSerializer ._floatFormatHandling |
_floatParseHandling | 5 | Newtonsoft.Json.JsonSerializer ._floatParseHandling |
_stringEscapeHandling | 5 | Newtonsoft.Json.JsonSerializer ._stringEscapeHandling |
_culture | 4 | Newtonsoft.Json.JsonSerializer._culture |
_maxDepth | 5 | Newtonsoft.Json.JsonSerializer._maxDepth |
_maxDepthSet | 1 | Newtonsoft.Json.JsonSerializer ._maxDepthSet |
_checkAdditionalContent | 5 | Newtonsoft.Json.JsonSerializer ._checkAdditionalContent |
_dateFormatString | 4 | Newtonsoft.Json.JsonSerializer ._dateFormatString |
_dateFormatStringSet | 1 | Newtonsoft.Json.JsonSerializer ._dateFormatStringSet |
_formatting | 5 | Newtonsoft.Json.JsonSerializerSettings ._formatting |
_dateFormatHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._dateFormatHandling |
_dateTimeZoneHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._dateTimeZoneHandling |
_dateParseHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._dateParseHandling |
_floatFormatHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._floatFormatHandling |
_floatParseHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._floatParseHandling |
_stringEscapeHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._stringEscapeHandling |
_culture | 4 | Newtonsoft.Json.JsonSerializerSettings ._culture |
_checkAdditionalContent | 5 | Newtonsoft.Json.JsonSerializerSettings ._checkAdditionalContent |
_maxDepth | 5 | Newtonsoft.Json.JsonSerializerSettings ._maxDepth |
_maxDepthSet | 1 | Newtonsoft.Json.JsonSerializerSettings ._maxDepthSet |
_dateFormatString | 4 | Newtonsoft.Json.JsonSerializerSettings ._dateFormatString |
_dateFormatStringSet | 1 | Newtonsoft.Json.JsonSerializerSettings ._dateFormatStringSet |
_typeNameAssemblyFormat | 5 | Newtonsoft.Json.JsonSerializerSettings ._typeNameAssemblyFormat |
_defaultValueHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._defaultValueHandling |
_preserveReferencesHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._preserveReferencesHandling |
_nullValueHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._nullValueHandling |
_objectCreationHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._objectCreationHandling |
_missingMemberHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._missingMemberHandling |
_referenceLoopHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._referenceLoopHandling |
_context | 5 | Newtonsoft.Json.JsonSerializerSettings ._context |
_constructorHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._constructorHandling |
_typeNameHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._typeNameHandling |
_metadataPropertyHandling | 5 | Newtonsoft.Json.JsonSerializerSettings ._metadataPropertyHandling |
Statistics
Stat | Size of instance |
---|---|
Sum: | 2 838 |
Average: | 4.33 |
Minimum: | 1 |
Maximum: | 16 |
Standard deviation: | 2.28 |
Variance: | 5.22 |
![]() | Rule warning: Static fields should be prefixed with a 's_' |
warnif count > 0 from f in Application.Fields where
!f.NameLike (@"^s_") &&
f.IsStatic &&
!f.IsLiteral &&
!f.IsGeneratedByCompiler &&
!f.IsSpecialName &&
!f.IsEventDelegateObject
select new { f, f.SizeOfInst }
// This naming convention provokes debate.
// Don't hesitate to customize the regex of
// NameLike to your preference.
View Code Query or Rule Body
109 fields matched
fields | Size of instance | Full Name |
---|---|---|
StateArray | N/A | Newtonsoft.Json.JsonWriter.StateArray |
StateArrayTempate | N/A | Newtonsoft.Json.JsonWriter .StateArrayTempate |
True | N/A | Newtonsoft.Json.JsonConvert.True |
False | N/A | Newtonsoft.Json.JsonConvert.False |
Null | N/A | Newtonsoft.Json.JsonConvert.Null |
Undefined | N/A | Newtonsoft.Json.JsonConvert.Undefined |
PositiveInfinity | N/A | Newtonsoft.Json.JsonConvert .PositiveInfinity |
NegativeInfinity | N/A | Newtonsoft.Json.JsonConvert .NegativeInfinity |
NaN | N/A | Newtonsoft.Json.JsonConvert.NaN |
DefaultContext | N/A | Newtonsoft.Json.JsonSerializerSettings .DefaultContext |
DefaultCulture | N/A | Newtonsoft.Json.JsonSerializerSettings .DefaultCulture |
EmptySchemaList | N/A | Newtonsoft.Json.JsonValidatingReader .EmptySchemaList |
Encoding | N/A | Newtonsoft.Json.Bson.BsonBinaryWriter .Encoding |
SeqRange1 | N/A | Newtonsoft.Json.Bson.BsonReader .SeqRange1 |
SeqRange2 | N/A | Newtonsoft.Json.Bson.BsonReader .SeqRange2 |
SeqRange3 | N/A | Newtonsoft.Json.Bson.BsonReader .SeqRange3 |
SeqRange4 | N/A | Newtonsoft.Json.Bson.BsonReader .SeqRange4 |
_reflectionObject | N/A | Newtonsoft.Json.Converters .EntityKeyMemberConverter ._reflectionObject |
ReflectionObjectPerType | N/A | Newtonsoft.Json.Converters .KeyValuePairConverter .ReflectionObjectPerType |
EnumMemberNamesPerType | N/A | Newtonsoft.Json.Converters .StringEnumConverter .EnumMemberNamesPerType |
TypeCodeMap | N/A | Newtonsoft.Json.Utilities.ConvertUtils .TypeCodeMap |
PrimitiveTypeCodes | N/A | Newtonsoft.Json.Utilities.ConvertUtils .PrimitiveTypeCodes |
CastConverters | N/A | Newtonsoft.Json.Utilities.ConvertUtils .CastConverters |
Power10 | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Power10 |
Lzyyyy | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lzyyyy |
Lzyyyy_ | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lzyyyy_ |
Lzyyyy_MM | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lzyyyy_MM |
Lzyyyy_MM_ | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lzyyyy_MM_ |
Lzyyyy_MM_dd | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lzyyyy_MM_dd |
Lzyyyy_MM_ddT | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lzyyyy_MM_ddT |
LzHH | N/A | Newtonsoft.Json.Utilities.DateTimeParser .LzHH |
LzHH_ | N/A | Newtonsoft.Json.Utilities.DateTimeParser .LzHH_ |
LzHH_mm | N/A | Newtonsoft.Json.Utilities.DateTimeParser .LzHH_mm |
LzHH_mm_ | N/A | Newtonsoft.Json.Utilities.DateTimeParser .LzHH_mm_ |
LzHH_mm_ss | N/A | Newtonsoft.Json.Utilities.DateTimeParser .LzHH_mm_ss |
Lz_ | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lz_ |
Lz_zz | N/A | Newtonsoft.Json.Utilities.DateTimeParser .Lz_zz |
InitialJavaScriptDateTicks | N/A | Newtonsoft.Json.Utilities.DateTimeUtils .InitialJavaScriptDateTicks |
DaysToMonth365 | N/A | Newtonsoft.Json.Utilities.DateTimeUtils .DaysToMonth365 |
DaysToMonth366 | N/A | Newtonsoft.Json.Utilities.DateTimeUtils .DaysToMonth366 |
NoArgs | N/A | Newtonsoft.Json.Utilities .DynamicProxyMetaObject<T>.NoArgs |
Instance | N/A | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .Instance |
_getCSharpArgumentInfoArray | N/A | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper ._getCSharpArgumentInfoArray |
_setCSharpArgumentInfoArray | N/A | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper ._setCSharpArgumentInfoArray |
_getMemberCall | N/A | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper ._getMemberCall |
_setMemberCall | N/A | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper ._setMemberCall |
_init | N/A | Newtonsoft.Json.Utilities .DynamicUtils+BinderWrapper._init |
ErrorResult | N/A | Newtonsoft.Json.Utilities .NoThrowExpressionVisitor.ErrorResult |
_instance | N/A | Newtonsoft.Json.Utilities .ExpressionReflectionDelegateFactory ._instance |
Lock | N/A | Newtonsoft.Json.Utilities.FSharpUtils .Lock |
_initialized | N/A | Newtonsoft.Json.Utilities.FSharpUtils ._initialized |
_ofSeq | N/A | Newtonsoft.Json.Utilities.FSharpUtils ._ofSeq |
_mapType | N/A | Newtonsoft.Json.Utilities.FSharpUtils ._mapType |
ArrayContractImmutableCollectionDefiniti ons | N/A | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ArrayContractImmutableCollectionDefinit ions |
DictionaryContractImmutableCollectionDef initions | N/A | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .DictionaryContractImmutableCollectionDe finitions |
SingleQuoteCharEscapeFlags | N/A | Newtonsoft.Json.Utilities .JavaScriptUtils .SingleQuoteCharEscapeFlags |
DoubleQuoteCharEscapeFlags | N/A | Newtonsoft.Json.Utilities .JavaScriptUtils .DoubleQuoteCharEscapeFlags |
HtmlCharEscapeFlags | N/A | Newtonsoft.Json.Utilities .JavaScriptUtils.HtmlCharEscapeFlags |
_instance | N/A | Newtonsoft.Json.Utilities .LateBoundReflectionDelegateFactory ._instance |
EmptyTypes | N/A | Newtonsoft.Json.Utilities .ReflectionUtils.EmptyTypes |
EmptyBuffer | N/A | Newtonsoft.Json.Utilities.StringBuffer .EmptyBuffer |
JsonSchemaTypeMapping | N/A | Newtonsoft.Json.Schema .JsonSchemaConstants .JsonSchemaTypeMapping |
TypeAttributeCache | N/A | Newtonsoft.Json.Serialization .CachedAttributeGetter<T> .TypeAttributeCache |
_instance | N/A | Newtonsoft.Json.Serialization .DefaultContractResolver._instance |
BuiltInConverters | N/A | Newtonsoft.Json.Serialization .DefaultContractResolver .BuiltInConverters |
_sharedContractCache | N/A | Newtonsoft.Json.Serialization .DefaultContractResolver ._sharedContractCache |
_typeContractCacheLock | N/A | Newtonsoft.Json.Serialization .DefaultContractResolver ._typeContractCacheLock |
Instance | N/A | Newtonsoft.Json.Serialization .DefaultSerializationBinder.Instance |
_dynamicCodeGeneration | N/A | Newtonsoft.Json.Serialization .JsonTypeReflector ._dynamicCodeGeneration |
_fullyTrusted | N/A | Newtonsoft.Json.Serialization .JsonTypeReflector._fullyTrusted |
JsonConverterCreatorCache | N/A | Newtonsoft.Json.Serialization .JsonTypeReflector .JsonConverterCreatorCache |
AssociatedMetadataTypesCache | N/A | Newtonsoft.Json.Serialization .JsonTypeReflector .AssociatedMetadataTypesCache |
_cachedMetadataTypeAttributeType | N/A | Newtonsoft.Json.Serialization .JsonTypeReflector ._cachedMetadataTypeAttributeType |
_metadataTypeAttributeReflectionObject | N/A | Newtonsoft.Json.Serialization .JsonTypeReflector ._metadataTypeAttributeReflectionObject |
_equalityComparer | N/A | Newtonsoft.Json.Linq.JToken ._equalityComparer |
BooleanTypes | N/A | Newtonsoft.Json.Linq.JToken.BooleanTypes |
NumberTypes | N/A | Newtonsoft.Json.Linq.JToken.NumberTypes |
BigIntegerTypes | N/A | Newtonsoft.Json.Linq.JToken .BigIntegerTypes |
StringTypes | N/A | Newtonsoft.Json.Linq.JToken.StringTypes |
GuidTypes | N/A | Newtonsoft.Json.Linq.JToken.GuidTypes |
TimeSpanTypes | N/A | Newtonsoft.Json.Linq.JToken .TimeSpanTypes |
UriTypes | N/A | Newtonsoft.Json.Linq.JToken.UriTypes |
CharTypes | N/A | Newtonsoft.Json.Linq.JToken.CharTypes |
DateTimeTypes | N/A | Newtonsoft.Json.Linq.JToken .DateTimeTypes |
BytesTypes | N/A | Newtonsoft.Json.Linq.JToken.BytesTypes |
Instance | N/A | Newtonsoft.Json.Linq .JContainer+JTokenReferenceEqualityCompa rer.Instance |
Empty | N/A | Newtonsoft.Json.Linq.JEnumerable<T> .Empty |
Comparer | N/A | Newtonsoft.Json.Linq .JPropertyKeyedCollection.Comparer |
Buffer | N/A | Newtonsoft.Json.Tests.PerformanceTests .Buffer |
TestData | N/A | Newtonsoft.Json.Tests.Converters .BinaryConverterTests.TestData |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql .Department.emptyChangingEventArgs |
mappingSource | N/A | Newtonsoft.Json.Tests.LinqToSql .LinqToSqlClassesDataContext .mappingSource |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql.Person .emptyChangingEventArgs |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql.Role .emptyChangingEventArgs |
emptyChangingEventArgs | N/A | Newtonsoft.Json.Tests.LinqToSql .PersonRole.emptyChangingEventArgs |
ModuleBuilder | N/A | Newtonsoft.Json.Tests.Serialization .DynamicConcrete.ModuleBuilder |
DynamicAssembly | N/A | Newtonsoft.Json.Tests.Serialization .DynamicConcrete.DynamicAssembly |
y | N/A | Newtonsoft.Json.Tests.Serialization .StaticTestClass.y |
element | N/A | Newtonsoft.Json.Tests.Serialization .ThrowingReader.element |
StringField | N/A | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s+StaticTestClass.StringField |
Statistics
Stat | Size of instance |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Abstract base class should be suffixed with 'Base' |
warnif count > 0 from t in Application.Types where
t.IsAbstract &&
t.IsClass &&
// equivalent to: DepthOfDeriveFrom "System.Object" == 1
t.DepthOfInheritance == 1 &&
((!t.IsGeneric && !t.NameLike (@"Base$")) ||
( t.IsGeneric && !t.NameLike (@"Base<")))
select new { t, t.DepthOfInheritance }View Code Query or Rule Body
17 types matched
types | Depth of inheritance | Full Name |
---|---|---|
JsonReader | 1 | Newtonsoft.Json.JsonReader |
JsonWriter | 1 | Newtonsoft.Json.JsonWriter |
JsonConverter | 1 | Newtonsoft.Json.JsonConverter |
BsonToken | 1 | Newtonsoft.Json.Bson.BsonToken |
ReflectionDelegateFactory | 1 | Newtonsoft.Json.Utilities .ReflectionDelegateFactory |
JsonContract | 1 | Newtonsoft.Json.Serialization .JsonContract |
JToken | 1 | Newtonsoft.Json.Linq.JToken |
PathFilter | 1 | Newtonsoft.Json.Linq.JsonPath.PathFilter |
QueryExpression | 1 | Newtonsoft.Json.Linq.JsonPath .QueryExpression |
AbstractWithNoConcrete | 1 | Newtonsoft.Json.Tests.Serialization .AbstractWithNoConcrete |
JsonSerializerTest+SimpleResponse | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+SimpleResponse |
JsonSerializerTest+Animal | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Animal |
JsonSerializerTest+LogEvent | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+LogEvent |
Test<T> | 1 | Newtonsoft.Json.Tests.Serialization.Test <T> |
AbstractTestClass | 1 | Newtonsoft.Json.Tests.Serialization .AbstractTestClass |
ContentBaseClass | 1 | Newtonsoft.Json.Tests.TestObjects .ContentBaseClass |
SerializeTypeNameHandling+Business | 1 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializeTypeNameHandling+Business |
Statistics
Stat | Depth of inheritance |
---|---|
Sum: | 17 |
Average: | 1 |
Minimum: | 1 |
Maximum: | 1 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods name should begin with an Upper character |
warnif count > 0 from m in JustMyCode.Methods where
!m.NameLike (@"^[A-Z]") &&
!m.IsSpecialName &&
!m.IsGeneratedByCompiler
select m
// The name of a regular method should
// begin with an Upper letter.View Code Query or Rule Body
2 methods matched
methods | Full Name |
---|---|
sdfs() | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests.sdfs() |
deserialize(String) | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest.deserialize(String) |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Avoid types with name too long |
warnif count > 0 from t in Application.Types
where !t.IsGeneratedByCompiler
where t.SimpleName.Length > 35
select new { t, t.SimpleName }
View Code Query or Rule Body
48 types matched
types | SimpleName | Full Name |
---|---|---|
CamelCasePropertyNamesContractResolver | CamelCasePropertyNamesContractResolver | Newtonsoft.Json.Serialization .CamelCasePropertyNamesContractResolver |
CamelCasePropertyNamesContractResolverTe sts | CamelCasePropertyNamesContractResolverTests | Newtonsoft.Json.Tests.Serialization .CamelCasePropertyNamesContractResolverT ests |
DefaultValueHandlingDeserializeHolder | DefaultValueHandlingDeserializeHolder | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializeHolder |
DefaultValueHandlingDeserializePopulate | DefaultValueHandlingDeserializePopulate | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializePopulate |
ExtensionDataTests+ExtensionDataDeserial izeWithNonDefaultConstructor | ExtensionDataDeserializeWithNonDefaultConstructor | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataDeseria lizeWithNonDefaultConstructor |
ExtensionDataTests+MultipleExtensionData AttributesTestClass | MultipleExtensionDataAttributesTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass |
ExtensionDataTests+ExtensionDataAttribut esInheritanceTestClass | ExtensionDataAttributesInheritanceTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass |
ExtensionDataTests+FieldExtensionDataAtt ributeTestClass | FieldExtensionDataAttributeTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+FieldExtensionDataAt tributeTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClass | PublicExtensionDataAttributeTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClassWithNonDefaultConstructo r | PublicExtensionDataAttributeTestClassWithNonDefaultConstructor | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClassWithNonDefaultConstruct or |
ExtensionDataTests+PublicNoReadExtension DataAttributeTestClass | PublicNoReadExtensionDataAttributeTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoReadExtensio nDataAttributeTestClass |
ExtensionDataTests+PublicNoWriteExtensio nDataAttributeTestClass | PublicNoWriteExtensionDataAttributeTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoWriteExtensi onDataAttributeTestClass |
ExtensionDataTests+PublicJTokenExtension DataAttributeTestClass | PublicJTokenExtensionDataAttributeTestClass | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicJTokenExtensio nDataAttributeTestClass |
JsonSerializerTest+ResponseWithNewGeneri cPropertyVirtual<T> | ResponseWithNewGenericPropertyVirtual | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyVirtual<T> |
JsonSerializerTest+ResponseWithNewGeneri cPropertyOverride<T> | ResponseWithNewGenericPropertyOverride | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyOverride<T> |
JsonSerializerTest+ConstructorAndDefault ValueAttributeTestClass | ConstructorAndDefaultValueAttributeTestClass | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndDefaul tValueAttributeTestClass |
JsonSerializerTest+NonDefaultConstructor WithReadOnlyCollectionProperty | NonDefaultConstructorWithReadOnlyCollectionProperty | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+NonDefaultConstructo rWithReadOnlyCollectionProperty |
JsonSerializerTest+NonDefaultConstructor WithReadOnlyDictionaryProperty | NonDefaultConstructorWithReadOnlyDictionaryProperty | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+NonDefaultConstructo rWithReadOnlyDictionaryProperty |
NonPublicConstructorWithJsonConstructor | NonPublicConstructorWithJsonConstructor | Newtonsoft.Json.Tests.Serialization .NonPublicConstructorWithJsonConstructor |
AbstractImplementationDictionaryTestClas s<TKey,TValue> | AbstractImplementationDictionaryTestClass | Newtonsoft.Json.Tests.Serialization .AbstractImplementationDictionaryTestCla ss<TKey,TValue> |
PublicConstructorOverridenByJsonConstruc tor | PublicConstructorOverridenByJsonConstructor | Newtonsoft.Json.Tests.Serialization .PublicConstructorOverridenByJsonConstru ctor |
MultipleParamatrizedConstructorsJsonCons tructor | MultipleParamatrizedConstructorsJsonConstructor | Newtonsoft.Json.Tests.Serialization .MultipleParamatrizedConstructorsJsonCon structor |
ReferenceLoopHandlingObjectContainerAttr ibute | ReferenceLoopHandlingObjectContainerAttribute | Newtonsoft.Json.Tests.Serialization .ReferenceLoopHandlingObjectContainerAtt ribute |
ReferenceLoopHandlingObjectContainerAttr ibuteWithPropertyOverride | ReferenceLoopHandlingObjectContainerAttributeWithPropertyOverride | Newtonsoft.Json.Tests.Serialization .ReferenceLoopHandlingObjectContainerAtt ributeWithPropertyOverride |
SerializationEventAttributeTests+Seriali zationEventContextSubClassTestObject | SerializationEventContextSubClassTestObject | Newtonsoft.Json.Tests.Serialization .SerializationEventAttributeTests+Serial izationEventContextSubClassTestObject |
DerivedSerializationEventOrderTestObject | DerivedSerializationEventOrderTestObject | Newtonsoft.Json.Tests.Serialization .DerivedSerializationEventOrderTestObjec t |
DerivedDerivedSerializationEventOrderTes tObject | DerivedDerivedSerializationEventOrderTestObject | Newtonsoft.Json.Tests.Serialization .DerivedDerivedSerializationEventOrderTe stObject |
JsonSerializerCollectionsTests+PrivateDe faultCtorWithIEnumerableCtorList<T> | PrivateDefaultCtorWithIEnumerableCtorList | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorWithIEnumerableCtorList<T> |
PropertyItemTypeNameHandlingDictionary | PropertyItemTypeNameHandlingDictionary | Newtonsoft.Json.Tests.Serialization .PropertyItemTypeNameHandlingDictionary |
ArgumentConverterPrecedenceClassConverte r | ArgumentConverterPrecedenceClassConverter | Newtonsoft.Json.Tests.TestObjects .ArgumentConverterPrecedenceClassConvert er |
ClassConverterPrecedenceClassConverter | ClassConverterPrecedenceClassConverter | Newtonsoft.Json.Tests.TestObjects .ClassConverterPrecedenceClassConverter |
DataContractSerializationAttributesClass | DataContractSerializationAttributesClass | Newtonsoft.Json.Tests.TestObjects .DataContractSerializationAttributesClas s |
GenericListAndDictionaryInterfacePropert ies | GenericListAndDictionaryInterfaceProperties | Newtonsoft.Json.Tests.TestObjects .GenericListAndDictionaryInterfaceProper ties |
MemberConverterPrecedenceClassConverter | MemberConverterPrecedenceClassConverter | Newtonsoft.Json.Tests.TestObjects .MemberConverterPrecedenceClassConverter |
PocoDataContractSerializationAttributesC lass | PocoDataContractSerializationAttributesClass | Newtonsoft.Json.Tests.TestObjects .PocoDataContractSerializationAttributes Class |
PrivateConstructorWithPublicParametizedC onstructorTestClass | PrivateConstructorWithPublicParametizedConstructorTestClass | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorWithPublicParametized ConstructorTestClass |
PublicParametizedConstructorRequiringCon verterTestClass | PublicParametizedConstructorRequiringConverterTestClass | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorRequiringCo nverterTestClass |
PublicParametizedConstructorRequiringCon verterWithParameterAttributeTestClass | PublicParametizedConstructorRequiringConverterWithParameterAttributeTestClass | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorRequiringCo nverterWithParameterAttributeTestClass |
PublicParametizedConstructorRequiringCon verterWithPropertyAttributeTestClass | PublicParametizedConstructorRequiringConverterWithPropertyAttributeTestClass | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorRequiringCo nverterWithPropertyAttributeTestClass |
PublicParametizedConstructorTestClass | PublicParametizedConstructorTestClass | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorTestClass |
PublicParametizedConstructorWithNonPrope rtyParameterTestClass | PublicParametizedConstructorWithNonPropertyParameterTestClass | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorWithNonProp ertyParameterTestClass |
PublicParametizedConstructorWithProperty NameConflict | PublicParametizedConstructorWithPropertyNameConflict | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorWithPropert yNameConflict |
PublicParametizedConstructorWithProperty NameConflictWithAttribute | PublicParametizedConstructorWithPropertyNameConflictWithAttribute | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorWithPropert yNameConflictWithAttribute |
SerializationEventTestObjectWithConstruc tor | SerializationEventTestObjectWithConstructor | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObjectWithConstru ctor |
DynamicReflectionDelegateFactoryTests | DynamicReflectionDelegateFactoryTests | Newtonsoft.Json.Tests.Utilities .DynamicReflectionDelegateFactoryTests |
ExpressionReflectionDelegateFactoryTests | ExpressionReflectionDelegateFactoryTests | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s |
DeserializeWithJsonSerializerFromFile | DeserializeWithJsonSerializerFromFile | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeWithJsonSerializerFromFile |
JsonObjectAttributeOverrideIEnumerable | JsonObjectAttributeOverrideIEnumerable | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonObjectAttributeOverrideIEnumerable |
Statistics
Stat | SimpleName |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid methods with name too long |
warnif count > 0 from m in Application.Methods where
!m.IsExplicitInterfaceImpl &&
!m.IsGeneratedByCompiler &&
((!m.IsSpecialName && m.SimpleName.Length > 35) ||
// Property getter/setter are prefixed with "get_" "set_" of length 4.
( m.IsSpecialName && m.SimpleName.Length - 4 > 35))
select new { m, m.SimpleName }
// The regex matches methods with name longer
// than 35 characters.
// Method Name doesn't contain the type and namespace
// prefix, FullName does.
// The regex computes the method name length from
// the beginning until the first open parenthesis
// or first lower than (for generic methods).
// Explicit Interface Implementation methods are
// discarded because their names are prefixed
// with the interface name.
View Code Query or Rule Body
298 methods matched
methods | SimpleName | Full Name |
---|---|---|
ResolveEnumableCollectionConstructor (Type,Type) | ResolveEnumableCollectionConstructor | Newtonsoft.Json.Utilities .CollectionUtils .ResolveEnumableCollectionConstructor (Type,Type) |
CopyFromJaggedToMultidimensionalArray (IList,Array,Int32[]) | CopyFromJaggedToMultidimensionalArray | Newtonsoft.Json.Utilities .CollectionUtils .CopyFromJaggedToMultidimensionalArray (IList,Array,Int32[]) |
TryBuildImmutableForDictionaryContract (Type,Type,Type,Type&,ObjectConstructor <Object>&) | TryBuildImmutableForDictionaryContract | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .TryBuildImmutableForDictionaryContract (Type,Type,Type,Type&,ObjectConstructor <Object>&) |
CreatePropertyFromConstructorParameter (JsonProperty,ParameterInfo) | CreatePropertyFromConstructorParameter | Newtonsoft.Json.Serialization .DefaultContractResolver .CreatePropertyFromConstructorParameter (JsonProperty,ParameterInfo) |
CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) | CreateObjectUsingCreatorWithParameters | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateObjectUsingCreatorWithParameters (JsonReader,JsonObjectContract ,JsonProperty,ObjectConstructor<Object> ,String) |
GetAssociateMetadataTypeFromAttribute (Type) | GetAssociateMetadataTypeFromAttribute | Newtonsoft.Json.Serialization .JsonTypeReflector .GetAssociateMetadataTypeFromAttribute (Type) |
DefaultSettings_Override_JsonConverterOr der() | DefaultSettings_Override_JsonConverterOrder | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override_JsonConverterO rder() |
DeserializeObject_Integer_EmptyString() | DeserializeObject_Integer_EmptyString | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer_EmptyString() |
DeserializeObject_Decimal_EmptyString() | DeserializeObject_Decimal_EmptyString | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Decimal_EmptyString() |
DeserializeObject_DateTime_EmptyString() | DeserializeObject_DateTime_EmptyString | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_DateTime_EmptyString( ) |
EscapeJavaScriptString_UnicodeLinefeeds( ) | EscapeJavaScriptString_UnicodeLinefeeds | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString_UnicodeLinefeeds () |
ThrowErrorWhenParsingUnquoteStringThatSt artsWithNE() | ThrowErrorWhenParsingUnquoteStringThatStartsWithNE | Newtonsoft.Json.Tests.JsonTextReaderTest .ThrowErrorWhenParsingUnquoteStringThatS tartsWithNE() |
ParseAdditionalContent_WhitespaceThenTex t() | ParseAdditionalContent_WhitespaceThenText | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseAdditionalContent_WhitespaceThenTe xt() |
UnexpectedEndWhenParsingUnquotedProperty () | UnexpectedEndWhenParsingUnquotedProperty | Newtonsoft.Json.Tests.JsonTextReaderTest .UnexpectedEndWhenParsingUnquotedPropert y() |
ParsingQuotedPropertyWithControlCharacte rs() | ParsingQuotedPropertyWithControlCharacters | Newtonsoft.Json.Tests.JsonTextReaderTest .ParsingQuotedPropertyWithControlCharact ers() |
ReadAsDateTimeOffsetUnitedStatesDate() | ReadAsDateTimeOffsetUnitedStatesDate | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadAsDateTimeOffsetUnitedStatesDate() |
ParseConstructorWithUnexpectedCharacter( ) | ParseConstructorWithUnexpectedCharacter | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseConstructorWithUnexpectedCharacter () |
ParseContentDelimitedByNonStandardWhites pace() | ParseContentDelimitedByNonStandardWhitespace | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseContentDelimitedByNonStandardWhite space() |
UnexpectedEndTokenWhenParsingOddEndToken () | UnexpectedEndTokenWhenParsingOddEndToken | Newtonsoft.Json.Tests.JsonTextReaderTest .UnexpectedEndTokenWhenParsingOddEndToke n() |
WriteValueObjectWithUnsupportedValue() | WriteValueObjectWithUnsupportedValue | Newtonsoft.Json.Tests.JsonTextWriterTest .WriteValueObjectWithUnsupportedValue() |
FloatingPointNonFiniteNumbers_Symbol() | FloatingPointNonFiniteNumbers_Symbol | Newtonsoft.Json.Tests.JsonTextWriterTest .FloatingPointNonFiniteNumbers_Symbol() |
FloatingPointNonFiniteNumbers_String() | FloatingPointNonFiniteNumbers_String | Newtonsoft.Json.Tests.JsonTextWriterTest .FloatingPointNonFiniteNumbers_String() |
FloatingPointNonFiniteNumbers_QuoteChar( ) | FloatingPointNonFiniteNumbers_QuoteChar | Newtonsoft.Json.Tests.JsonTextWriterTest .FloatingPointNonFiniteNumbers_QuoteChar () |
IntegerGreaterThanMaximumValue_BigIntege r() | IntegerGreaterThanMaximumValue_BigInteger | Newtonsoft.Json.Tests .JsonValidatingReaderTests .IntegerGreaterThanMaximumValue_BigInteg er() |
IntegerLessThanMaximumValue_BigInteger() | IntegerLessThanMaximumValue_BigInteger | Newtonsoft.Json.Tests .JsonValidatingReaderTests .IntegerLessThanMaximumValue_BigInteger( ) |
ThrowExceptionWhenNoValidationEventHandl er() | ThrowExceptionWhenNoValidationEventHandler | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ThrowExceptionWhenNoValidationEventHand ler() |
BigIntegerDivisibleBy_FractionWithZeroVa lue() | BigIntegerDivisibleBy_FractionWithZeroValue | Newtonsoft.Json.Tests .JsonValidatingReaderTests .BigIntegerDivisibleBy_FractionWithZeroV alue() |
ExtendsStringGreaterThanMaximumLength() | ExtendsStringGreaterThanMaximumLength | Newtonsoft.Json.Tests .JsonValidatingReaderTests .ExtendsStringGreaterThanMaximumLength() |
PatternPropertiesNoAdditionalProperties( ) | PatternPropertiesNoAdditionalProperties | Newtonsoft.Json.Tests .JsonValidatingReaderTests .PatternPropertiesNoAdditionalProperties () |
WriteAndReadEmptyListsAndDictionaries() | WriteAndReadEmptyListsAndDictionaries | Newtonsoft.Json.Tests.Bson .BsonReaderTests .WriteAndReadEmptyListsAndDictionaries() |
TestReadLenStringValueShortTripleByte() | TestReadLenStringValueShortTripleByte | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadLenStringValueShortTripleByte() |
TestReadLenStringValueTripleByteCharBuff erBoundry0() | TestReadLenStringValueTripleByteCharBufferBoundry0 | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadLenStringValueTripleByteCharBuf ferBoundry0() |
TestReadLenStringValueTripleByteCharBuff erBoundry1() | TestReadLenStringValueTripleByteCharBufferBoundry1 | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadLenStringValueTripleByteCharBuf ferBoundry1() |
TestReadLenStringValueTripleByteCharOne( ) | TestReadLenStringValueTripleByteCharOne | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadLenStringValueTripleByteCharOne () |
TestReadLenStringValueTripleByteCharBuff erBoundry2() | TestReadLenStringValueTripleByteCharBufferBoundry2 | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadLenStringValueTripleByteCharBuf ferBoundry2() |
TestReadStringPropertyNameShortTripleByt e() | TestReadStringPropertyNameShortTripleByte | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadStringPropertyNameShortTripleBy te() |
TestReadStringPropertyNameTripleByteChar BufferBoundry0() | TestReadStringPropertyNameTripleByteCharBufferBoundry0 | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadStringPropertyNameTripleByteCha rBufferBoundry0() |
TestReadStringPropertyNameTripleByteChar BufferBoundry1() | TestReadStringPropertyNameTripleByteCharBufferBoundry1 | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadStringPropertyNameTripleByteCha rBufferBoundry1() |
TestReadStringPropertyNameTripleByteChar One() | TestReadStringPropertyNameTripleByteCharOne | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadStringPropertyNameTripleByteCha rOne() |
TestReadStringPropertyNameTripleByteChar BufferBoundry2() | TestReadStringPropertyNameTripleByteCharBufferBoundry2 | Newtonsoft.Json.Tests.Bson .BsonReaderTests .TestReadStringPropertyNameTripleByteCha rBufferBoundry2() |
MultibyteCharacterPropertyNamesAndString s() | MultibyteCharacterPropertyNamesAndStrings | Newtonsoft.Json.Tests.Bson .BsonReaderTests .MultibyteCharacterPropertyNamesAndStrin gs() |
DeserializeByteArrayWithTypeNameHandling () | DeserializeByteArrayWithTypeNameHandling | Newtonsoft.Json.Tests.Bson .BsonReaderTests .DeserializeByteArrayWithTypeNameHandlin g() |
GuidsShouldBeProperlyDeserialised_AsByte s() | GuidsShouldBeProperlyDeserialised_AsBytes | Newtonsoft.Json.Tests.Bson .BsonReaderTests .GuidsShouldBeProperlyDeserialised_AsByt es() |
GuidsShouldBeProperlyDeserialised_AsByte s_ReadAhead() | GuidsShouldBeProperlyDeserialised_AsBytes_ReadAhead | Newtonsoft.Json.Tests.Bson .BsonReaderTests .GuidsShouldBeProperlyDeserialised_AsByt es_ReadAhead() |
SerializeByteArray_ErrorWhenTopLevel() | SerializeByteArray_ErrorWhenTopLevel | Newtonsoft.Json.Tests.Bson .BsonWriterTests .SerializeByteArray_ErrorWhenTopLevel() |
PassedInJsonConverterOverridesInternalCo nverter() | PassedInJsonConverterOverridesInternalConverter | Newtonsoft.Json.Tests.Converters .DataTableConverterTests .PassedInJsonConverterOverridesInternalC onverter() |
SerializeDataTableWithNullAndIgnoreNullH andling() | SerializeDataTableWithNullAndIgnoreNullHandling | Newtonsoft.Json.Tests.Converters .DataTableConverterTests .SerializeDataTableWithNullAndIgnoreNull Handling() |
SerializeKeyValuePairWithDataTableKey() | SerializeKeyValuePairWithDataTableKey | Newtonsoft.Json.Tests.Converters .DataTableConverterTests .SerializeKeyValuePairWithDataTableKey() |
SerializeFormattedDateTimeInvariantCultu re() | SerializeFormattedDateTimeInvariantCulture | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests .SerializeFormattedDateTimeInvariantCult ure() |
SerializeFormattedDateTimeNewZealandCult ure() | SerializeFormattedDateTimeNewZealandCulture | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests .SerializeFormattedDateTimeNewZealandCul ture() |
CamelCaseTextFlagEnumDeserialization() | CamelCaseTextFlagEnumDeserialization | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests .CamelCaseTextFlagEnumDeserialization() |
SerializeAndDeserializeXmlWithNamespaceI nChildrenAndNoValueInChildren() | SerializeAndDeserializeXmlWithNamespaceInChildrenAndNoValueInChildren | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .SerializeAndDeserializeXmlWithNamespace InChildrenAndNoValueInChildren() |
MultipleRootPropertiesAddRootElement() | MultipleRootPropertiesAddRootElement | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .MultipleRootPropertiesAddRootElement() |
SerializeDeserializeMetadataProperties() | SerializeDeserializeMetadataProperties | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .SerializeDeserializeMetadataProperties( ) |
SingleItemArrayPropertySerialization() | SingleItemArrayPropertySerialization | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .SingleItemArrayPropertySerialization() |
ComplexSingleItemArrayPropertySerializat ion() | ComplexSingleItemArrayPropertySerialization | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .ComplexSingleItemArrayPropertySerializa tion() |
EmtpyElementWithArrayAttributeShouldWrit eAttributes() | EmtpyElementWithArrayAttributeShouldWriteAttributes | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .EmtpyElementWithArrayAttributeShouldWri teAttributes() |
EmtpyElementWithArrayAttributeShouldWrit eElement() | EmtpyElementWithArrayAttributeShouldWriteElement | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .EmtpyElementWithArrayAttributeShouldWri teElement() |
DeserializeAttributePropertyNotAtStart() | DeserializeAttributePropertyNotAtStart | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .DeserializeAttributePropertyNotAtStart( ) |
SerializeAndDeserializeXElementWithNames paceInChildrenRootDontHaveNameSpace() | SerializeAndDeserializeXElementWithNamespaceInChildrenRootDontHaveNameSpace | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .SerializeAndDeserializeXElementWithName spaceInChildrenRootDontHaveNameSpace() |
SerializeAndDeserializeXmlElementWithNam espaceInChildrenRootDontHaveNameSpace() | SerializeAndDeserializeXmlElementWithNamespaceInChildrenRootDontHaveNameSpace | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest .SerializeAndDeserializeXmlElementWithNa mespaceInChildrenRootDontHaveNameSpace() |
ValidateFailureWithOutLineInfoBecauseOfE ndToken() | ValidateFailureWithOutLineInfoBecauseOfEndToken | Newtonsoft.Json.Tests.Schema .ExtensionsTests .ValidateFailureWithOutLineInfoBecauseOf EndToken() |
GenerateSchemaAndSerializeFromTypeTests( ) | GenerateSchemaAndSerializeFromTypeTests | Newtonsoft.Json.Tests.Schema .ExtensionsTests .GenerateSchemaAndSerializeFromTypeTests () |
Generate_DefaultValueAttributeTestClass( ) | Generate_DefaultValueAttributeTestClass | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests .Generate_DefaultValueAttributeTestClass () |
WriteTo_ExclusiveMinimum_ExclusiveMaximu m() | WriteTo_ExclusiveMinimum_ExclusiveMaximum | Newtonsoft.Json.Tests.Schema .JsonSchemaTests .WriteTo_ExclusiveMinimum_ExclusiveMaxim um() |
WriteTo_PositionalItemsValidation_True() | WriteTo_PositionalItemsValidation_True | Newtonsoft.Json.Tests.Schema .JsonSchemaTests .WriteTo_PositionalItemsValidation_True( ) |
WriteTo_PositionalItemsValidation_TrueWi thItemsSchema() | WriteTo_PositionalItemsValidation_TrueWithItemsSchema | Newtonsoft.Json.Tests.Schema .JsonSchemaTests .WriteTo_PositionalItemsValidation_TrueW ithItemsSchema() |
WriteTo_PositionalItemsValidation_FalseW ithItemsSchema() | WriteTo_PositionalItemsValidation_FalseWithItemsSchema | Newtonsoft.Json.Tests.Schema .JsonSchemaTests .WriteTo_PositionalItemsValidation_False WithItemsSchema() |
UsePrivateConstructorIfThereAreMultipleC onstructorsWithParametersAndNothingToFal lbackTo() | UsePrivateConstructorIfThereAreMultipleConstructorsWithParametersAndNothingToFallbackTo | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .UsePrivateConstructorIfThereAreMultiple ConstructorsWithParametersAndNothingToFa llbackTo() |
SuccessWithPrivateConstructorAndAllowNon Public() | SuccessWithPrivateConstructorAndAllowNonPublic | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPrivateConstructorAndAllowNo nPublic() |
FailWithPrivateConstructorPlusParametize dAndDefault() | FailWithPrivateConstructorPlusParametizedAndDefault | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .FailWithPrivateConstructorPlusParametiz edAndDefault() |
SuccessWithPrivateConstructorPlusParamet izedAndAllowNonPublic() | SuccessWithPrivateConstructorPlusParametizedAndAllowNonPublic | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPrivateConstructorPlusParame tizedAndAllowNonPublic() |
SuccessWithPublicParametizedConstructor( ) | SuccessWithPublicParametizedConstructor | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPublicParametizedConstructor () |
SuccessWithPublicParametizedConstructorW henParamaterIsNotAProperty() | SuccessWithPublicParametizedConstructorWhenParamaterIsNotAProperty | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPublicParametizedConstructor WhenParamaterIsNotAProperty() |
SuccessWithPublicParametizedConstructorW henParamaterRequiresAConverter() | SuccessWithPublicParametizedConstructorWhenParamaterRequiresAConverter | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPublicParametizedConstructor WhenParamaterRequiresAConverter() |
SuccessWithPublicParametizedConstructorW henParamaterRequiresAConverterWithParame terAttribute() | SuccessWithPublicParametizedConstructorWhenParamaterRequiresAConverterWithParameterAttribute | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPublicParametizedConstructor WhenParamaterRequiresAConverterWithParam eterAttribute() |
SuccessWithPublicParametizedConstructorW henParamaterRequiresAConverterWithProper tyAttribute() | SuccessWithPublicParametizedConstructorWhenParamaterRequiresAConverterWithPropertyAttribute | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPublicParametizedConstructor WhenParamaterRequiresAConverterWithPrope rtyAttribute() |
SuccessWithPublicParametizedConstructorW henParamaterNameConflictsWithPropertyNam e() | SuccessWithPublicParametizedConstructorWhenParamaterNameConflictsWithPropertyName | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .SuccessWithPublicParametizedConstructor WhenParamaterNameConflictsWithPropertyNa me() |
PublicParametizedConstructorWithProperty NameConflictWithAttribute() | PublicParametizedConstructorWithPropertyNameConflictWithAttribute | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests .PublicParametizedConstructorWithPropert yNameConflictWithAttribute() |
DeserializeDataMemberClassWithNoDataCont ract() | DeserializeDataMemberClassWithNoDataContract | Newtonsoft.Json.Tests.Serialization .ContractResolverTests .DeserializeDataMemberClassWithNoDataCon tract() |
SingleTypeWithMultipleContractResolvers( ) | SingleTypeWithMultipleContractResolvers | Newtonsoft.Json.Tests.Serialization .ContractResolverTests .SingleTypeWithMultipleContractResolvers () |
DeserializeDefaultValueAttributeTest() | DeserializeDefaultValueAttributeTest | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests .DeserializeDefaultValueAttributeTest() |
IgnoreNumberTypeDifferencesWithDefaultVa lue() | IgnoreNumberTypeDifferencesWithDefaultValue | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests .IgnoreNumberTypeDifferencesWithDefaultV alue() |
UseDynamicConcreteIfTargetObjectTypeIsAn InterfaceWithNoBackingClass() | UseDynamicConcreteIfTargetObjectTypeIsAnInterfaceWithNoBackingClass | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests .UseDynamicConcreteIfTargetObjectTypeIsA nInterfaceWithNoBackingClass() |
UseDynamicConcreteIfTargetObjectTypeIsAn AbstractClassWithNoConcrete() | UseDynamicConcreteIfTargetObjectTypeIsAnAbstractClassWithNoConcrete | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests .UseDynamicConcreteIfTargetObjectTypeIsA nAbstractClassWithNoConcrete() |
AnyMethodsExposedByDynamicConcreteAreHar mless() | AnyMethodsExposedByDynamicConcreteAreHarmless | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests .AnyMethodsExposedByDynamicConcreteAreHa rmless() |
SerializeDynamicObjectWithObjectTracking () | SerializeDynamicObjectWithObjectTracking | Newtonsoft.Json.Tests.Serialization .DynamicTests .SerializeDynamicObjectWithObjectTrackin g() |
SerializeDynamicObjectWithNullValueHandl ingIgnore() | SerializeDynamicObjectWithNullValueHandlingIgnore | Newtonsoft.Json.Tests.Serialization .DynamicTests .SerializeDynamicObjectWithNullValueHand lingIgnore() |
SerializeDynamicObjectWithNullValueHandl ingInclude() | SerializeDynamicObjectWithNullValueHandlingInclude | Newtonsoft.Json.Tests.Serialization .DynamicTests .SerializeDynamicObjectWithNullValueHand lingInclude() |
SerializeDynamicObjectWithDefaultValueHa ndlingIgnore() | SerializeDynamicObjectWithDefaultValueHandlingIgnore | Newtonsoft.Json.Tests.Serialization .DynamicTests .SerializeDynamicObjectWithDefaultValueH andlingIgnore() |
SerializeMultiValueEntityKeyCameCase() | SerializeMultiValueEntityKeyCameCase | Newtonsoft.Json.Tests.Serialization .EntitiesSerializationTests .SerializeMultiValueEntityKeyCameCase() |
ExtensionDataDeserializeWithNonDefaultCo nstructorTest() | ExtensionDataDeserializeWithNonDefaultConstructorTest | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .ExtensionDataDeserializeWithNonDefaultC onstructorTest() |
DeserializeNoReadPublicExtensionData() | DeserializeNoReadPublicExtensionData | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .DeserializeNoReadPublicExtensionData() |
SerializePublicExtensionDataCircularRefe rence() | SerializePublicExtensionDataCircularReference | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .SerializePublicExtensionDataCircularRef erence() |
DeserializePublicJTokenExtensionDataCirc ularReference() | DeserializePublicJTokenExtensionDataCircularReference | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .DeserializePublicJTokenExtensionDataCir cularReference() |
DeserializePublicExtensionDataTypeNamdHa ndling() | DeserializePublicExtensionDataTypeNamdHandling | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .DeserializePublicExtensionDataTypeNamdH andling() |
DeserializePublicExtensionDataTypeNamdHa ndlingNonDefaultConstructor() | DeserializePublicExtensionDataTypeNamdHandlingNonDefaultConstructor | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .DeserializePublicExtensionDataTypeNamdH andlingNonDefaultConstructor() |
SerializePublicExtensionDataTypeNamdHand ling() | SerializePublicExtensionDataTypeNamdHandling | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .SerializePublicExtensionDataTypeNamdHan dling() |
FieldExtensionDataAttributeTest_Serializ e() | FieldExtensionDataAttributeTest_Serialize | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .FieldExtensionDataAttributeTest_Seriali ze() |
FieldExtensionDataAttributeTest_Deserial ize() | FieldExtensionDataAttributeTest_Deserialize | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests .FieldExtensionDataAttributeTest_Deseria lize() |
Statistics
Stat | SimpleName |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid fields with name too long |
warnif count > 0 from f in Application.Fields where
!f.IsGeneratedByCompiler &&
f.Name.Length > 35
select f
// The regex matches fields with name longer
// than 35 characters.
// Field Name doesn't contain the type and
// namespace prefix, FullName does.
View Code Query or Rule Body
11 fields matched
fields | Full Name |
---|---|
MaximumJavascriptIntegerCharacterLength | Newtonsoft.Json.JsonTextReader .MaximumJavascriptIntegerCharacterLength |
ImmutableListGenericInterfaceTypeName | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ImmutableListGenericInterfaceTypeName |
ImmutableQueueGenericInterfaceTypeName | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ImmutableQueueGenericInterfaceTypeName |
ImmutableStackGenericInterfaceTypeName | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ImmutableStackGenericInterfaceTypeName |
ImmutableSetGenericInterfaceTypeName | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ImmutableSetGenericInterfaceTypeName |
ImmutableDictionaryGenericInterfaceTypeN ame | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ImmutableDictionaryGenericInterfaceType Name |
ImmutableSortedDictionaryGenericTypeName | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ImmutableSortedDictionaryGenericTypeNam e |
ArrayContractImmutableCollectionDefiniti ons | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .ArrayContractImmutableCollectionDefinit ions |
DictionaryContractImmutableCollectionDef initions | Newtonsoft.Json.Utilities .ImmutableCollectionsUtils .DictionaryContractImmutableCollectionDe finitions |
_hasRequiredOrDefaultValueProperties | Newtonsoft.Json.Serialization .JsonObjectContract ._hasRequiredOrDefaultValueProperties |
_metadataTypeAttributeReflectionObject | Newtonsoft.Json.Serialization .JsonTypeReflector ._metadataTypeAttributeReflectionObject |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Critical Rule warning: Avoid having different types with same name |
// Such practice typically creates confusion,
// and type naming collision inside a source file.
warnif count > 0
// This rule matches also collisions between
// application and third-party types sharing a same name.
let groups = JustMyCode.Types.Union(ThirdParty.Types)
// Discard nested types, whose name is
// prefixed with the parent type name.
.Where(t => !t.IsNested)
// Group types by name.
.GroupBy(t => t.Name)
from @group in groups
where @group.Count() > 1
// Let's see if types with the same name are declared
// in different namespaces.
// (t.FullName is {namespaceName}.{typeName} )
let groupsFullName = @group.GroupBy(t => t.FullName)
where groupsFullName.Count() > 1
// If several types with same name are declared in different namespaces
// eliminate the case where all types are declared in third-party assemblies.
let types= groupsFullName.SelectMany(g => g)
where types.Any(t => !t.IsThirdParty)
// Uncomment this line, to only gets naming collision involving
// both application and third-party types.
// && types.Any(t => t.IsThirdParty)
orderby types.Count() descending
select new { t = types.First(),
// In the 'types' column, make sure to group matched types
// by parent assemblies and parent namespaces, to get a result
// more readable.
types
}View Code Query or Rule Body
13 types matched
types | types | Full Name |
---|---|---|
File | 3 types | Newtonsoft.Json.Tests.File |
Person | 3 types | Newtonsoft.Json.Tests.LinqToSql.Person |
Extensions | 2 types | Newtonsoft.Json.Schema.Extensions |
PerformanceTests | 2 types | Newtonsoft.Json.Tests.PerformanceTests |
TestClass | 2 types | Newtonsoft.Json.Tests.TestClass |
Task | 2 types | Newtonsoft.Json.Tests.Schema.Task |
Container | 2 types | Newtonsoft.Json.Tests.Schema.Container |
JsonSchemaTests | 2 types | Newtonsoft.Json.Tests.Schema .JsonSchemaTests |
DynamicTests | 2 types | Newtonsoft.Json.Tests.Serialization .DynamicTests |
LogManager | 2 types | Newtonsoft.Json.Tests.Serialization .LogManager |
TraceWriterTests | 2 types | Newtonsoft.Json.Tests.Serialization .TraceWriterTests |
TraceWriter | 2 types | Newtonsoft.Json.Tests.TestObjects .TraceWriter |
Employee | 2 types | Newtonsoft.Json.Tests.TestObjects .Employee |
Statistics
Stat | types |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods prefixed with 'Try' should return a boolean |
// and such TryXXX method can eventually have out parameters to return results.
// Get inspired from the API design of:
// System.Int32.TryParse(int,out string):bool
warnif count > 0
from m in Application.Methods where
m.SimpleNameLike("^Try") &&
m.ReturnType != null &&
m.ReturnType.FullName != "System.Boolean"
select new { m, m.ReturnType }View Code Query or Rule Body
2 methods matched
methods | ReturnType | Full Name |
---|---|---|
TryConvertInternal(Object,CultureInfo ,Type,Object&) | ConvertUtils+ConvertResult | Newtonsoft.Json.Utilities.ConvertUtils .TryConvertInternal(Object,CultureInfo ,Type,Object&) |
TryGetValue() | Void | Newtonsoft.Json.Tests.Linq.JObjectTests .TryGetValue() |
Statistics
Stat | ReturnType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
510
Source Files Organization |
|
![]() | Rule warning: Avoid defining multiple types in a source file |
warnif count > 0
// Build a lookup indexed by source files, values being a sequence of types defined in the source file.
let lookup = Application.Types.Where(t =>
t.SourceFileDeclAvailable &&
// except nested types and types generated by compilers!
!t.IsGeneratedByCompiler &&
!t.IsNested)
// It could make sense to not apply this rule for enumerations.
// && !t.IsEnumeration)
// We use multi-key, since a type can be declared in multiple source files.
.ToMultiKeyLookup(t => t.SourceDecls.Select(d => d.SourceFile))
from @group in lookup where @group.Count() > 1
let sourceFile = @group.Key
// CQLinq doesn't let indexing result with sourceFile
// so we choose a typeIndex in types,
// preferably the type that has the file name.
let typeWithSourceFileName = @group.FirstOrDefault(t => t.SimpleName == sourceFile.FileNameWithoutExtension)
let typeIndex = typeWithSourceFileName ?? @group.First()
select new { typeIndex,
types = @group as IEnumerable<IType>,
sourceFile.FilePathString }View Code Query or Rule Body
55 types matched
types | types | FilePathString | Full Name |
---|---|---|---|
JsonPosition | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\JsonPosition.cs | Newtonsoft.Json.JsonPosition |
JsonTextReader | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\JsonTextReader.cs | Newtonsoft.Json.JsonTextReader |
BsonToken | 8 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Bson\BsonToken.cs | Newtonsoft.Json.Bson.BsonToken |
XmlNodeConverter | 21 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Converters\XmlNodeConverter.cs | Newtonsoft.Json.Converters .XmlNodeConverter |
CollectionWrapper<T> | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Utilities\CollectionWrapper.cs | Newtonsoft.Json.Utilities .CollectionWrapper<T> |
ConvertUtils | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Utilities\ConvertUtils.cs | Newtonsoft.Json.Utilities.ConvertUtils |
DateTimeParser | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Utilities\DateTimeParser.cs | Newtonsoft.Json.Utilities.DateTimeParser |
DictionaryWrapper<TKey,TValue> | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Utilities\DictionaryWrapper.cs | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> |
DynamicUtils | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Utilities\DynamicUtils.cs | Newtonsoft.Json.Utilities.DynamicUtils |
ReflectionObject | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Utilities\ReflectionObject.cs | Newtonsoft.Json.Utilities .ReflectionObject |
DefaultContractResolver | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Serialization\DefaultContractResolver.cs | Newtonsoft.Json.Serialization .DefaultContractResolver |
JsonContract | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Serialization\JsonContract.cs | Newtonsoft.Json.Serialization .JsonContract |
QueryExpression | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\Linq\JsonPath\QueryExpression.cs | Newtonsoft.Json.Linq.JsonPath .QueryExpression |
TestFixtureBase | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestFixtureBase.cs | Newtonsoft.Json.Tests.TestFixtureBase |
DataServicesTestDatabaseEntities | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\FileSystemEntityModel.Designer.cs | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities |
JsonTextReaderTest | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\JsonTextReaderTest.cs | Newtonsoft.Json.Tests.JsonTextReaderTest |
JsonTextWriterTest | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\JsonTextWriterTest.cs | Newtonsoft.Json.Tests.JsonTextWriterTest |
PerformanceTests | 6 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\PerformanceTests.cs | Newtonsoft.Json.Tests.PerformanceTests |
JavaScriptDateTimeConverterTests | 5 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Converters\JavaScriptDateTimeConverterTests.cs | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests |
VersionConverterTests | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Converters\VersionConverterTests.cs | Newtonsoft.Json.Tests.Converters .VersionConverterTests |
Department | 5 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\LinqToSql\LinqToSqlClasses.designer.cs | Newtonsoft.Json.Tests.LinqToSql .Department |
JsonSchemaGeneratorTests | 16 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Schema\JsonSchemaGeneratorTests.cs | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests |
JsonSchemaSpecTests | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Schema\JsonSchemaSpecTests.cs | Newtonsoft.Json.Tests.Schema .JsonSchemaSpecTests |
ContractResolverTests | 6 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\ContractResolverTests.cs | Newtonsoft.Json.Tests.Serialization .ContractResolverTests |
DefaultValueHandlingTests | 8 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\DefaultValueHandlingTests.cs | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests |
DynamicConcreteTests | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\DynamicConcreteTests.cs | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests |
DynamicTests | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\DynamicTests.cs | Newtonsoft.Json.Tests.Serialization .DynamicTests |
DependencyInjectionTests | 8 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\DependencyInjectionTests.cs | Newtonsoft.Json.Tests.Serialization .DependencyInjectionTests |
JsonSerializerTest | 19 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\JsonSerializerTest.cs | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
PreserveReferencesHandlingTests | 7 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\PreserveReferencesHandlingTests.cs | Newtonsoft.Json.Tests.Serialization .PreserveReferencesHandlingTests |
ReferenceLoopHandlingTests | 6 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\ReferenceLoopHandlingTests.cs | Newtonsoft.Json.Tests.Serialization .ReferenceLoopHandlingTests |
SerializationErrorHandlingTests | 10 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\SerializationErrorHandlingTests.cs | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests |
SerializationEventAttributeTests | 6 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\SerializationEventAttributeTests.cs | Newtonsoft.Json.Tests.Serialization .SerializationEventAttributeTests |
JsonSerializerCollectionsTests | 11 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\JsonSerializerCollectionsTests.cs | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests |
ShouldSerializeTests | 7 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\ShouldSerializeTests.cs | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests |
TraceWriterTests | 6 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\TraceWriterTests.cs | Newtonsoft.Json.Tests.Serialization .TraceWriterTests |
TypeNameHandlingTests | 24 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\TypeNameHandlingTests.cs | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests |
WebApiIntegrationTests | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Serialization\WebApiIntegrationTests.cs | Newtonsoft.Json.Tests.Serialization .WebApiIntegrationTests |
Event | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\Event.cs | Newtonsoft.Json.Tests.TestObjects.Event |
GoogleMapGeocoderStructure | 11 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\GoogleMapGeocoderStructure.cs | Newtonsoft.Json.Tests.TestObjects .GoogleMapGeocoderStructure |
IMyInterface | 5 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\IMyInterface.cs | Newtonsoft.Json.Tests.TestObjects .IMyInterface |
InterfacePropertyTestClass | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\InterfacePropertyTestClass.cs | Newtonsoft.Json.Tests.TestObjects .InterfacePropertyTestClass |
ListTestClass | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\ListTestClass.cs | Newtonsoft.Json.Tests.TestObjects .ListTestClass |
Person | 4 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\Person.cs | Newtonsoft.Json.Tests.TestObjects.Person |
PublicParametizedConstructorRequiringCon verterTestClass | 5 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\PublicParametizedConstructorRequiringConverterTestClass.cs | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorRequiringCo nverterTestClass |
PublicParametizedConstructorWithProperty NameConflict | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\PublicParametizedConstructorWithPropertyNameConflict.cs | Newtonsoft.Json.Tests.TestObjects .PublicParametizedConstructorWithPropert yNameConflict |
RoleTransfer | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\RoleTransfer.cs | Newtonsoft.Json.Tests.TestObjects .RoleTransfer |
SerializationEventTestObject | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\SerializationEventTestObject.cs | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject |
Shortie | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\Shortie.cs | Newtonsoft.Json.Tests.TestObjects .Shortie |
WithEnums | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\TestObjects\WithEnums.cs | Newtonsoft.Json.Tests.TestObjects .WithEnums |
ConditionalPropertiesTests | 3 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Documentation\ConditionalPropertiesTests.cs | Newtonsoft.Json.Tests.Documentation .ConditionalPropertiesTests |
LinqToJsonTests | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Documentation\LinqToJsonTests.cs | Newtonsoft.Json.Tests.Documentation .LinqToJsonTests |
PerformanceTests | 6 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Documentation\PerformanceTests.cs | Newtonsoft.Json.Tests.Documentation .PerformanceTests |
TraceWriterTests | 5 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Documentation\TraceWriterTests.cs | Newtonsoft.Json.Tests.Documentation .TraceWriterTests |
DynamicTests | 2 types | c:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\Linq\DynamicTests.cs | Newtonsoft.Json.Tests.Linq.DynamicTests |
Statistics
Stat | types | FilePathString |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
2670
.NET Framework Usage |
|
940
System |
|
![]() | Rule warning: Mark assemblies with CLSCompliant |
warnif count > 0 from a in Application.Assemblies where
!a.HasAttribute ("System.CLSCompliantAttribute".AllowNoMatch())
select a
// The Common Language Specification (CLS) defines
// naming restrictions, data types, and rules to which
// assemblies must conform if they are to be used
// across programming languages. Good design dictates
// that all assemblies explicitly indicate CLS
// compliance with CLSCompliantAttribute. If the
// attribute is not present on an assembly, the
// assembly is not compliant.View Code Query or Rule Body
1 assemblies matched
assembly | Full Name |
---|---|
Newtonsoft.Json.Tests | Newtonsoft.Json.Tests |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Enum Storage should be Int32 |
warnif count > 0 from f in Fields where
f.Name == @"value__" &&
!f.FieldTypeIs ("System.Int32".AllowNoMatch()) &&
!f.IsThirdParty
select new { f, f.SizeOfInst, f.FieldType }
// An enumeration is a value type that defines
// a set of related named constants. By default,
// the System.Int32 data type is used to store
// the constant value. Even though you can change
// this underlying type, it is not necessary or
// recommended for most scenarios. Note that there
// is no significant performance gain in using
// a data type smaller than Int32. If you cannot
// use the default data type, you should use one
// of the CLS-compliant integral types, Byte,
// Int16, Int32, or Int64, to ensure that all of
// the enumeration's values are representable in
// CLS-compliant programming languages.View Code Query or Rule Body
2 fields matched
fields | Size of instance | FieldType | Full Name |
---|---|---|---|
value__ | 1 | Byte | Newtonsoft.Json.Bson.BsonBinaryType .value__ |
value__ | 1 | SByte | Newtonsoft.Json.Bson.BsonType.value__ |
Statistics
Stat | Size of instance | FieldType |
---|---|---|
Sum: | 2 | 0 |
Average: | 1 | 0 |
Minimum: | 1 | 0 |
Maximum: | 1 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Do not raise too general exception types |
warnif count > 0 from m in Application.Methods where
// Test for non-constructor, else this rule
// would warn on ctor of classes that derive
// from these exception types.
!m.IsConstructor && (
m.CreateA("System.Exception".AllowNoMatch()) ||
m.CreateA("System.ApplicationException".AllowNoMatch()) ||
m.CreateA("System.SystemException".AllowNoMatch()) )
select m
View Code Query or Rule Body
28 methods matched
methods | Full Name |
---|---|
CopyFromJaggedToMultidimensionalArray (IList,Array,Int32[]) | Newtonsoft.Json.Utilities .CollectionUtils .CopyFromJaggedToMultidimensionalArray (IList,Array,Int32[]) |
Convert(Object,CultureInfo,Type) | Newtonsoft.Json.Utilities.ConvertUtils .Convert(Object,CultureInfo,Type) |
CreateGet<T>(MemberInfo) | Newtonsoft.Json.Utilities .ReflectionDelegateFactory.CreateGet<T> (MemberInfo) |
CreateSet<T>(MemberInfo) | Newtonsoft.Json.Utilities .ReflectionDelegateFactory.CreateSet<T> (MemberInfo) |
GetCollectionItemType(Type) | Newtonsoft.Json.Utilities .ReflectionUtils.GetCollectionItemType (Type) |
GetDictionaryKeyValueTypes(Type,Type& ,Type&) | Newtonsoft.Json.Utilities .ReflectionUtils .GetDictionaryKeyValueTypes(Type,Type& ,Type&) |
JsonSerializationException() | Newtonsoft.Json.Tests.ExceptionTests .JsonSerializationException() |
JsonWriterException() | Newtonsoft.Json.Tests.ExceptionTests .JsonWriterException() |
JsonReaderException() | Newtonsoft.Json.Tests.ExceptionTests .JsonReaderException() |
JsonSchemaException() | Newtonsoft.Json.Tests.ExceptionTests .JsonSchemaException() |
Read(Char[],Int32,Int32) | Newtonsoft.Json.Tests.ToggleReaderError .Read(Char[],Int32,Int32) |
CompareNewStringEscapingWithOld() | Newtonsoft.Json.Tests.JsonTextWriterTest .CompareNewStringEscapingWithOld() |
ToType(Type,IFormatProvider) | Newtonsoft.Json.Tests.ConvertibleInt .ToType(Type,IFormatProvider) |
Throws<TException>(String,Action) | Newtonsoft.Json.Tests.ExceptionAssert .Throws<TException>(String,Action) |
DataContractJsonSerializerTest() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest .DataContractJsonSerializerTest() |
SerializeException1() | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest.SerializeException1( ) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests+Somethi ng+SomethingConverter.ReadJson (JsonReader,Type,Object,JsonSerializer) |
WriteJson(JsonWriter,Object ,JsonSerializer) | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests+Somethi ng+SomethingConverter.WriteJson (JsonWriter,Object,JsonSerializer) |
Read(Char[],Int32,Int32) | Newtonsoft.Json.Tests.Serialization .ThrowingReader.Read(Char[],Int32,Int32) |
ReadJson(JsonReader,Type,Object ,JsonSerializer) | Newtonsoft.Json.Tests.TestObjects .ConverterPrecedenceClassConverter .ReadJson(JsonReader,Type,Object ,JsonSerializer) |
get_ThrowError() | Newtonsoft.Json.Tests.TestObjects .ListErrorObject.get_ThrowError() |
set_ThrowError(String) | Newtonsoft.Json.Tests.TestObjects .ListErrorObject.set_ThrowError(String) |
get_Roles() | Newtonsoft.Json.Tests.TestObjects .PersonError.get_Roles() |
get_Member6() | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .get_Member6() |
set_Member6(String) | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .set_Member6(String) |
MoveNext() | Newtonsoft.Json.Tests.TestObjects .VersionKeyedCollection+GetEnumerator >d__0.MoveNext() |
get_Roles() | Newtonsoft.Json.Tests.Documentation .SerializationTests+PersonError .get_Roles() |
get_Roles() | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ErrorHandlingAttribute+Employee .get_Roles() |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Uri fields should be of type System.Uri |
warnif count > 0 from f in Application.Fields where
(f.NameLike (@"Uri$") ||
f.NameLike (@"Url$")) &&
!f.FieldTypeIs ("System.Uri".AllowNoMatch())
select new { f, f.FieldType }
// A field which name end with 'Uri' is deemed
// as representing a uri. Such field should be of
// type System.Uri.View Code Query or Rule Body
3 fields matched
fields | FieldType | Full Name |
---|---|---|
JsonNamespaceUri | String | Newtonsoft.Json.Converters .XmlNodeConverter.JsonNamespaceUri |
Uri | PrimitiveTypeCode | Newtonsoft.Json.Utilities .PrimitiveTypeCode.Uri |
Uri | JTokenType | Newtonsoft.Json.Linq.JTokenType.Uri |
Statistics
Stat | FieldType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
110
System.Collection |
|
![]() | Rule warning: Collection properties should be read only |
// A writable collection property allows a user to replace the collection with
// a completely different collection. A read-only property stops the collection
// from being replaced but still allows the individual members to be set.
// If replacing the collection is a goal, the preferred design pattern is to
// include a method to remove all the elements from the collection
// (with a call to the ICollection.Clear() method) and then re-populate the collection.
warnif count > 0
// First find collectionTypes
let collectionInterfaces = ThirdParty.Types.WithFullNameIn(
"System.Collections.ICollection", "System.Collections.Generic.ICollection<T>")
where collectionInterfaces.Count() > 0
let collectionTypes = Types.ThatImplementAny(collectionInterfaces)
.Union(collectionInterfaces).ToHashSet()
// Then find all property setters that have an associated
// getter that returns a collection type.
from propGetter in Application.Methods.Where(
m => m.IsPropertyGetter &&
m.ReturnType != null &&
collectionTypes.Contains(m.ReturnType))
let propSetter = propGetter.ParentType.Methods.WithSimpleName(
propGetter.SimpleName.Replace("get_","set_"))
.SingleOrDefault()
where propSetter != null &&
!propSetter.IsPrivate
select new { propSetter, propGetter.ReturnType }View Code Query or Rule Body
122 methods matched
methods | ReturnType | Full Name |
---|---|---|
set_Converters(IList<JsonConverter>) | IList<T> | Newtonsoft.Json.JsonSerializerSettings .set_Converters(IList<JsonConverter>) |
set_UniqueArrayItems(IList<JToken>) | IList<T> | Newtonsoft.Json .JsonValidatingReader+SchemaScope .set_UniqueArrayItems(IList<JToken>) |
set_Items(IList<JsonSchema>) | IList<T> | Newtonsoft.Json.Schema.JsonSchema .set_Items(IList<JsonSchema>) |
set_Properties(IDictionary<String ,JsonSchema>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Schema.JsonSchema .set_Properties(IDictionary<String ,JsonSchema>) |
set_PatternProperties(IDictionary<String ,JsonSchema>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Schema.JsonSchema .set_PatternProperties(IDictionary <String,JsonSchema>) |
set_Enum(IList<JToken>) | IList<T> | Newtonsoft.Json.Schema.JsonSchema .set_Enum(IList<JToken>) |
set_Extends(IList<JsonSchema>) | IList<T> | Newtonsoft.Json.Schema.JsonSchema .set_Extends(IList<JsonSchema>) |
set_Patterns(IList<String>) | IList<T> | Newtonsoft.Json.Schema.JsonSchemaModel .set_Patterns(IList<String>) |
set_Items(IList<JsonSchemaModel>) | IList<T> | Newtonsoft.Json.Schema.JsonSchemaModel .set_Items(IList<JsonSchemaModel>) |
set_Properties(IDictionary<String ,JsonSchemaModel>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Schema.JsonSchemaModel .set_Properties(IDictionary<String ,JsonSchemaModel>) |
set_PatternProperties(IDictionary<String ,JsonSchemaModel>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Schema.JsonSchemaModel .set_PatternProperties(IDictionary <String,JsonSchemaModel>) |
set_Enum(IList<JToken>) | IList<T> | Newtonsoft.Json.Schema.JsonSchemaModel .set_Enum(IList<JToken>) |
set_LoadedSchemas(IList<JsonSchema>) | IList<T> | Newtonsoft.Json.Schema .JsonSchemaResolver.set_LoadedSchemas (IList<JsonSchema>) |
set_Parent(JContainer) | JContainer | Newtonsoft.Json.Linq.JToken.set_Parent (JContainer) |
set_Indexes(List<Int32>) | List<T> | Newtonsoft.Json.Linq.JsonPath .ArrayMultipleIndexFilter.set_Indexes (List<Int32>) |
set_Names(List<String>) | List<T> | Newtonsoft.Json.Linq.JsonPath .FieldMultipleFilter.set_Names(List <String>) |
set_Expressions(List<QueryExpression>) | List<T> | Newtonsoft.Json.Linq.JsonPath .CompositeExpression.set_Expressions (List<QueryExpression>) |
set_Path(List<PathFilter>) | List<T> | Newtonsoft.Json.Linq.JsonPath .BooleanQueryExpression.set_Path(List <PathFilter>) |
set_Reportees(IList<DemoTests+Employee>) | IList<T> | Newtonsoft.Json.Tests.DemoTests+Manager .set_Reportees(IList<DemoTests+Employee> ) |
set_Files(EntityCollection<File>) | EntityCollection<TEntity> | Newtonsoft.Json.Tests.Folder.set_Files (EntityCollection<File>) |
set_ChildFolders(EntityCollection<Folder >) | EntityCollection<TEntity> | Newtonsoft.Json.Tests.Folder .set_ChildFolders(EntityCollection <Folder>) |
set_Data(Byte[]) | Array | Newtonsoft.Json.Tests.Image.set_Data (Byte[]) |
set_Addresses(List<Address>) | List<T> | Newtonsoft.Json.Tests.TestClass .set_Addresses(List<Address>) |
set_Scores(Int32[]) | Array | Newtonsoft.Json.Tests.SimpleObject .set_Scores(Int32[]) |
set_Animals(List<BsonReaderTests+Animal> ) | List<T> | Newtonsoft.Json.Tests.Bson .BsonReaderTests+Zoo.set_Animals(List <BsonReaderTests+Animal>) |
set_TheGuid(Byte[]) | Array | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BytesTestClass .set_TheGuid(Byte[]) |
set_ByteArray(Byte[]) | Array | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+ByteArrayClass .set_ByteArray(Byte[]) |
set_NullByteArray(Byte[]) | Array | Newtonsoft.Json.Tests.Converters .BinaryConverterTests+ByteArrayClass .set_NullByteArray(Byte[]) |
set_Expando(ExpandoObject) | ExpandoObject | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests+ExpandoCont ainer.set_Expando(ExpandoObject) |
set_Products(IList<Product>) | IList<T> | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest+TestComplexArrayCl ass.set_Products(IList<Product>) |
set_Persons(EntitySet<Person>) | EntitySet<TEntity> | Newtonsoft.Json.Tests.LinqToSql .Department.set_Persons(EntitySet<Person >) |
set_PersonRoles(EntitySet<PersonRole>) | EntitySet<TEntity> | Newtonsoft.Json.Tests.LinqToSql.Person .set_PersonRoles(EntitySet<PersonRole>) |
set_PersonRoles(EntitySet<PersonRole>) | EntitySet<TEntity> | Newtonsoft.Json.Tests.LinqToSql.Role .set_PersonRoles(EntitySet<PersonRole>) |
set_PersonRoles(EntitySet<PersonRole>) | EntitySet<TEntity> | Newtonsoft.Json.Tests.LinqToSql .Role+RoleMetadata.set_PersonRoles (EntitySet<PersonRole>) |
set_Schema(JObject) | JObject | Newtonsoft.Json.Tests.Schema .JsonSchemaSpecTest.set_Schema(JObject) |
set_Ignored(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_Ignored(IList<Int32>) |
set_Ints(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_Ints(IList<Int32>) |
set_ExtensionData(IDictionary<String ,JToken>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_ExtensionData(IDictionary<String ,JToken>) |
set_ExtensionData(JObject) | JObject | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+JObjectExtensionData TestClass.set_ExtensionData(JObject) |
set_ExtensionData1(IDictionary<String ,JToken>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass.set_ExtensionData1 (IDictionary<String,JToken>) |
set_ExtensionData2(IDictionary<String ,JToken>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass.set_ExtensionData2 (IDictionary<String,JToken>) |
set_ExtensionData0(IDictionary<String ,JToken>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass .set_ExtensionData0(IDictionary<String ,JToken>) |
set_People(IList<Person>) | IList<T> | Newtonsoft.Json.Tests.Serialization .HasSettableProperty.set_People(IList <Person>) |
set_Dictionary(Dictionary<String,String> ) | Dictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ExistingValueClass .set_Dictionary(Dictionary<String,String >) |
set_List(List<String>) | List<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ExistingValueClass .set_List(List<String>) |
set_TheItems(T[]) | Array | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ThisGenericTest<T> .set_TheItems(T[]) |
set_Prop1(Byte[]) | Array | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyClass.set_Prop1 (Byte[]) |
set_Values(IList<Decimal>) | IList<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CommentTestClass .set_Values(IList<Decimal>) |
set_Exceptions(IList<Exception>) | IList<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ClassWithException .set_Exceptions(IList<Exception>) |
set_MyProperty(Dictionary<String,Object> ) | Dictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyType .set_MyProperty(Dictionary<String,Object >) |
set_Data(IList<TestComponentSimple>) | IList<T> | Newtonsoft.Json.Tests.Serialization .PropertyItemIsReferenceBody.set_Data (IList<TestComponentSimple>) |
set_Data(IList<IList<Object>>) | IList<T> | Newtonsoft.Json.Tests.Serialization .PropertyItemIsReferenceList.set_Data (IList<IList<Object>>) |
set_Events(IList<LogEvent>) | IList<T> | Newtonsoft.Json.Tests.Serialization .LogMessage.set_Events(IList<LogEvent>) |
set_projects(String[]) | Array | Newtonsoft.Json.Tests.Serialization .ExportPostData.set_projects(String[]) |
set_GenericList(List<String>) | List<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+GenericL istTestClass.set_GenericList(List<String >) |
set_NonReadOnlyList(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass.set_NonReadOnlyList (IList<Int32>) |
set_NonReadOnlyDictionary(IDictionary <String,Int32>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass .set_NonReadOnlyDictionary(IDictionary <String,Int32>) |
set_Array(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass.set_Array(IList<Int32> ) |
set_List(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass.set_List(IList<Int32>) |
set_Dictionary(IDictionary<String,Int32> ) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass.set_Dictionary (IDictionary<String,Int32>) |
set_ReadOnlyCollection (ReadOnlyCollection<Int32>) | ReadOnlyCollection<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass.set_ReadOnlyCollection (ReadOnlyCollection<Int32>) |
set_ReadOnlyDictionary (ReadOnlyDictionary<String,Int32>) | ReadOnlyDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+Populate ReadOnlyTestClass.set_ReadOnlyDictionary (ReadOnlyDictionary<String,Int32>) |
set_Coordinates(Int32[,]) | Array | Newtonsoft.Json.Tests.Serialization .Array2D.set_Coordinates(Int32[,]) |
set_Coordinates(Int32[,,]) | Array | Newtonsoft.Json.Tests.Serialization .Array3D.set_Coordinates(Int32[,,]) |
set_Coordinates(Int32[,,]) | Array | Newtonsoft.Json.Tests.Serialization .Array3DWithConverter.set_Coordinates (Int32[,,]) |
set_Items(IList<T>) | IList<T> | Newtonsoft.Json.Tests.Serialization .GenericClass<T,TValue>.set_Items(IList <T>) |
set_myBaz(Baz1[]) | Array | Newtonsoft.Json.Tests.Serialization.Bar1 .set_myBaz(Baz1[]) |
set_myFrob(Frob1[]) | Array | Newtonsoft.Json.Tests.Serialization.Baz1 .set_myFrob(Frob1[]) |
set_Roles(IList<String>) | IList<T> | Newtonsoft.Json.Tests.Serialization .Staff.set_Roles(IList<String>) |
set_TraceRecords(IList<TraceRecord>) | IList<T> | Newtonsoft.Json.Tests.Serialization .InMemoryTraceWriter.set_TraceRecords (IList<TraceRecord>) |
set_IntList(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.Serialization .TraceTestObject.set_IntList(IList<Int32 >) |
set_StringArray(String[]) | Array | Newtonsoft.Json.Tests.Serialization .TraceTestObject.set_StringArray (String[]) |
set_StringDictionary(IDictionary<String ,String>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .TraceTestObject.set_StringDictionary (IDictionary<String,String>) |
set_Array(IList<EmployeeReference>) | IList<T> | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests+Wrapper.set_Array (IList<EmployeeReference>) |
set_Dictionary(IDictionary<String ,EmployeeReference>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests+Wrapper .set_Dictionary(IDictionary<String ,EmployeeReference>) |
set_Headers(Dictionary<String,String>) | Dictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests+SendHttpRequest .set_Headers(Dictionary<String,String>) |
set_Features(List<String>) | List<T> | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests+Car.set_Features (List<String>) |
set_Objects(Object[]) | Array | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests+Car.set_Objects (Object[]) |
set_Data(IDictionary<String,Object>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.Serialization .PropertyItemTypeNameHandlingDictionary .set_Data(IDictionary<String,Object>) |
set_Data(IList<Object>) | IList<T> | Newtonsoft.Json.Tests.Serialization .PropertyItemTypeNameHandling.set_Data (IList<Object>) |
set_Features(List<String>) | List<T> | Newtonsoft.Json.Tests.TestObjects.Car .set_Features(List<String>) |
set_In(IList<Product>) | IList<T> | Newtonsoft.Json.Tests.TestObjects .Container.set_In(IList<Product>) |
set_Out(IList<Product>) | IList<T> | Newtonsoft.Json.Tests.TestObjects .Container.set_Out(IList<Product>) |
set_Dictionary(IDictionary<String,Int32> ) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.TestObjects .DictionaryInterfaceClass.set_Dictionary (IDictionary<String,Int32>) |
set_Collection(ICollection<Int32>) | ICollection<T> | Newtonsoft.Json.Tests.TestObjects .DictionaryInterfaceClass.set_Collection (ICollection<Int32>) |
set_Performances(IList<DateTime>) | IList<T> | Newtonsoft.Json.Tests.TestObjects.Event1 .set_Performances(IList<DateTime>) |
set_Bars(List<Bar>) | List<T> | Newtonsoft.Json.Tests.TestObjects.Foo .set_Bars(List<Bar>) |
set_IListProperty(IList<Int32>) | IList<T> | Newtonsoft.Json.Tests.TestObjects .GenericListAndDictionaryInterfaceProper ties.set_IListProperty(IList<Int32>) |
set_IDictionaryProperty(IDictionary <String,Int32>) | IDictionary<TKey,TValue> | Newtonsoft.Json.Tests.TestObjects .GenericListAndDictionaryInterfaceProper ties.set_IDictionaryProperty(IDictionary <String,Int32>) |
set_AnotherTestMember(Dictionary<Int32 ,IList<ContentBaseClass>>) | Dictionary<TKey,TValue> | Newtonsoft.Json.Tests.TestObjects .HolderClass.set_AnotherTestMember (Dictionary<Int32,IList<ContentBaseClass >>) |
set_Coordinates(Int32[][]) | Array | Newtonsoft.Json.Tests.TestObjects .JaggedArray.set_Coordinates(Int32[][]) |
set_items(List<ListItem>) | List<T> | Newtonsoft.Json.Tests.TestObjects .ListTestClass.set_items(List<ListItem>) |
set_ReleaseCountries(List<String>) | List<T> | Newtonsoft.Json.Tests.TestObjects.Movie .set_ReleaseCountries(List<String>) |
set_FidOrder(IList<String>) | IList<T> | Newtonsoft.Json.Tests.TestObjects .NonRequest.set_FidOrder(IList<String>) |
set_Data(Object[]) | Array | Newtonsoft.Json.Tests.TestObjects .ObjectArrayPropertyTest.set_Data (Object[]) |
set_Properties(Dictionary<String,String> ) | Dictionary<TKey,TValue> | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.set_Properties (Dictionary<String,String>) |
set_Employees(IList<Employee>) | IList<T> | Newtonsoft.Json.Tests.TestObjects .Manager.set_Employees(IList<Employee>) |
set_Roles(List<String>) | List<T> | Newtonsoft.Json.Tests.TestObjects .PersonError.set_Roles(List<String>) |
set_Data(IList<String>) | IList<T> | Newtonsoft.Json.Tests.TestObjects .PropertyItemConverter.set_Data(IList <String>) |
set_Data(Byte[]) | Array | Newtonsoft.Json.Tests.TestObjects .TestObject.set_Data(Byte[]) |
Statistics
Stat | ReturnType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
110
System.Xml |
|
![]() | Rule warning: Method should not return concrete XmlNode |
warnif count > 0
let concreteXmlTypes = ThirdParty.Types.WithFullNameIn(
"System.Xml.XmlDocument",
"System.Xml.XmlAttribute",
"System.Xml.XmlDocumentFragment",
"System.Xml.XmlEntity",
"System.Xml.XmlLinkedNode",
"System.Xml.XmlNotation",
"System.Xml.XmlNode")
from m in Application.Methods.WithReturnTypeIn(concreteXmlTypes)
select new { m, m.ReturnType }
// The class System.Xml.XmlNode implements the interface
// System.Xml.Xpath.IXPathNavigable. It is preferrable
// to return this interface instead of a concrete class.
View Code Query or Rule Body
6 methods matched
methods | ReturnType | Full Name |
---|---|---|
DeserializeXmlNode(String) | XmlDocument | Newtonsoft.Json.JsonConvert .DeserializeXmlNode(String) |
DeserializeXmlNode(String,String) | XmlDocument | Newtonsoft.Json.JsonConvert .DeserializeXmlNode(String,String) |
DeserializeXmlNode(String,String,Boolean ) | XmlDocument | Newtonsoft.Json.JsonConvert .DeserializeXmlNode(String,String ,Boolean) |
DeserializeXmlNode(String) | XmlNode | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest.DeserializeXmlNode (String) |
DeserializeXmlNode(String,String) | XmlNode | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest.DeserializeXmlNode (String,String) |
get_Document() | XmlDocument | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+XmlNodeTestObject .get_Document() |
Statistics
Stat | ReturnType |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
010
System.Globalization |
|
![]() | Rule warning: Float and Date Parsing must be culture aware |
warnif count > 0
from m in ThirdParty.Types.WithFullNameIn(
"System.DateTime",
"System.Single",
"System.Double",
"System.Decimal").ChildMethods()
where m.NbParameters > 0 &&
(m.SimpleName == "Parse" ||
m.SimpleName == "ToString") &&
!m.Name.Contains("IFormatProvider")
select new { m, m.MethodsCallingMe }View Code Query or Rule Body
3 methods matched
methods | MethodsCallingMe | Full Name |
---|---|---|
Parse(String) | 2 methods | System.DateTime.Parse(String) |
ToString(String) | 1 method | System.DateTime.ToString(String) |
ToString(String) | 1 method | System.Double.ToString(String) |
Statistics
Stat | MethodsCallingMe |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
Object Oriented Design
|
![]() | Rule warning: Base class should not use derivatives |
warnif count > 0
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }View Code Query or Rule Body
5 types matched
types | derivedClassesUsed | Full Name |
---|---|---|
XmlNodeWrapper | 3 types | Newtonsoft.Json.Converters .XmlNodeWrapper |
XContainerWrapper | 2 types | Newtonsoft.Json.Converters .XContainerWrapper |
JsonSerializerInternalBase | 1 type | Newtonsoft.Json.Serialization .JsonSerializerInternalBase |
JToken | 6 types | Newtonsoft.Json.Linq.JToken |
JContainer | 4 types | Newtonsoft.Json.Linq.JContainer |
Statistics
Stat | derivedClassesUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Class shouldn't be too deep in inheritance tree |
warnif count > 0 from t in JustMyCode.Types
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()
// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3
select new { t, baseClasses,
// The metric value DepthOfInheritance takes account
// of third-party base classes
t.DepthOfInheritance }
// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here
// http://www.ndepend.com/Metrics.aspx#DIT
View Code Query or Rule Body
1 types matched
type | baseClasses | Depth of inheritance | Full Name |
---|---|---|---|
SequenceContainer_DSL | 3 types | 4 | Newtonsoft.Json.Tests.Schema .SequenceContainer_DSL |
Statistics
Stat | baseClasses | Depth of inheritance |
---|---|---|
Sum: | 0 | 4 |
Average: | 0 | 4 |
Minimum: | 0 | 4 |
Maximum: | 0 | 4 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Rule warning: Class with no descendant should be sealed if possible |
warnif count > 0 from t in JustMyCode.Types where
t.IsClass &&
t.NbChildren ==0 &&
!t.IsSealed &&
!t.IsStatic
// && !t.IsPublic <-- You might want to add this condition
// if you are developing a framework
// with classes that are intended to be
// sub-classed by your clients.
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }View Code Query or Rule Body
885 types matched
types | # lines of code (LOC) | Full Name |
---|---|---|
JsonSerializerTest | 2 102 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JsonTextReaderTest | 1 568 | Newtonsoft.Json.Tests.JsonTextReaderTest |
BsonReaderTests | 912 | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
JsonSerializerInternalReader | 906 | Newtonsoft.Json.Serialization .JsonSerializerInternalReader |
JObjectTests | 770 | Newtonsoft.Json.Tests.Linq.JObjectTests |
JsonValidatingReaderTests | 754 | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
JsonTextWriterTest | 675 | Newtonsoft.Json.Tests.JsonTextWriterTest |
JsonTextReader | 638 | Newtonsoft.Json.JsonTextReader |
JTokenTests | 542 | Newtonsoft.Json.Tests.Linq.JTokenTests |
DynamicTests | 472 | Newtonsoft.Json.Tests.Linq.DynamicTests |
JsonSerializerInternalWriter | 440 | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter |
JsonConvertTest | 437 | Newtonsoft.Json.Tests.JsonConvertTest |
BsonWriterTests | 412 | Newtonsoft.Json.Tests.Bson .BsonWriterTests |
XmlNodeConverterTest | 407 | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest |
PerformanceTests | 401 | Newtonsoft.Json.Tests.PerformanceTests |
TypeNameHandlingTests | 397 | Newtonsoft.Json.Tests.Serialization .TypeNameHandlingTests |
XmlNodeConverter | 393 | Newtonsoft.Json.Converters .XmlNodeConverter |
TraceWriterTests | 382 | Newtonsoft.Json.Tests.Serialization .TraceWriterTests |
JsonValidatingReader | 368 | Newtonsoft.Json.JsonValidatingReader |
JsonSerializerCollectionsTests | 355 | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests |
JPath | 322 | Newtonsoft.Json.Linq.JsonPath.JPath |
BsonReader | 307 | Newtonsoft.Json.Bson.BsonReader |
JPathExecuteTests | 276 | Newtonsoft.Json.Tests.Linq.JsonPath .JPathExecuteTests |
JTokenReaderTest | 272 | Newtonsoft.Json.Tests.Linq .JTokenReaderTest |
JPathParseTests | 261 | Newtonsoft.Json.Tests.Linq.JsonPath .JPathParseTests |
LinqToJsonTest | 253 | Newtonsoft.Json.Tests.Linq .LinqToJsonTest |
JValueTests | 225 | Newtonsoft.Json.Tests.Linq.JValueTests |
JsonSchemaBuilder | 222 | Newtonsoft.Json.Schema.JsonSchemaBuilder |
PreserveReferencesHandlingTests | 211 | Newtonsoft.Json.Tests.Serialization .PreserveReferencesHandlingTests |
JArrayTests | 206 | Newtonsoft.Json.Tests.Linq.JArrayTests |
SerializationErrorHandlingTests | 198 | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests |
JsonSchemaBuilderTests | 177 | Newtonsoft.Json.Tests.Schema .JsonSchemaBuilderTests |
DataTableConverterTests | 174 | Newtonsoft.Json.Tests.Converters .DataTableConverterTests |
DictionaryWrapper<TKey,TValue> | 170 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> |
JObject | 169 | Newtonsoft.Json.Linq.JObject |
ExtensionsTests | 160 | Newtonsoft.Json.Tests.Schema .ExtensionsTests |
JsonSchemaGenerator | 155 | Newtonsoft.Json.Schema .JsonSchemaGenerator |
BsonBinaryWriter | 143 | Newtonsoft.Json.Bson.BsonBinaryWriter |
JsonSchemaGeneratorTests | 141 | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests |
JsonSchemaTests | 141 | Newtonsoft.Json.Tests.Schema .JsonSchemaTests |
ContractResolverTests | 133 | Newtonsoft.Json.Tests.Serialization .ContractResolverTests |
TraceJsonWriter | 128 | Newtonsoft.Json.Serialization .TraceJsonWriter |
SerializationEventAttributeTests | 125 | Newtonsoft.Json.Tests.Serialization .SerializationEventAttributeTests |
JsonSchemaWriter | 122 | Newtonsoft.Json.Schema.JsonSchemaWriter |
DataSetConverterTests | 120 | Newtonsoft.Json.Tests.Converters .DataSetConverterTests |
ImmutableCollectionsTests | 116 | Newtonsoft.Json.Tests.Serialization .ImmutableCollectionsTests |
MetadataPropertyHandlingTests | 116 | Newtonsoft.Json.Tests.Serialization .MetadataPropertyHandlingTests |
JTokenReader | 115 | Newtonsoft.Json.Linq.JTokenReader |
DynamicReflectionDelegateFactory | 114 | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory |
CustomerDataSet | 113 | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet |
ExpressionReflectionDelegateFactory | 110 | Newtonsoft.Json.Utilities .ExpressionReflectionDelegateFactory |
ExtensionDataTests | 110 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests |
BsonWriter | 106 | Newtonsoft.Json.Bson.BsonWriter |
SerializationTests | 106 | Newtonsoft.Json.Tests.Documentation .SerializationTests |
IsoDateTimeConverterTests | 105 | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests |
StringEnumConverterTests | 102 | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests |
ShouldSerializeTests | 101 | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests |
CustomerDataSet+CustomersDataTable | 96 | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersDataTable |
ExpressionReflectionDelegateFactoryTests | 91 | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s |
DateTimeUtilsTests | 88 | Newtonsoft.Json.Tests.Utilities .DateTimeUtilsTests |
JTokenWriter | 86 | Newtonsoft.Json.Linq.JTokenWriter |
JPropertyKeyedCollection | 85 | Newtonsoft.Json.Linq .JPropertyKeyedCollection |
EntitiesSerializationTests | 85 | Newtonsoft.Json.Tests.Serialization .EntitiesSerializationTests |
JTokenWriterTest | 85 | Newtonsoft.Json.Tests.Linq .JTokenWriterTest |
CollectionWrapper<T> | 81 | Newtonsoft.Json.Utilities .CollectionWrapper<T> |
JsonSchemaModelBuilder | 79 | Newtonsoft.Json.Schema .JsonSchemaModelBuilder |
DynamicTests | 79 | Newtonsoft.Json.Tests.Serialization .DynamicTests |
JsonSerializerProxy | 75 | Newtonsoft.Json.Serialization .JsonSerializerProxy |
JsonArrayContract | 74 | Newtonsoft.Json.Serialization .JsonArrayContract |
DataTableConverter | 73 | Newtonsoft.Json.Converters .DataTableConverter |
LinqToJsonTests | 69 | Newtonsoft.Json.Tests.Documentation .LinqToJsonTests |
StringEnumConverter | 68 | Newtonsoft.Json.Converters .StringEnumConverter |
RegexConverter | 67 | Newtonsoft.Json.Converters .RegexConverter |
RegexConverterTests | 67 | Newtonsoft.Json.Tests.Converters .RegexConverterTests |
DefaultValueHandlingTests | 65 | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests |
JProperty | 63 | Newtonsoft.Json.Linq.JProperty |
DiscriminatedUnionConverter | 62 | Newtonsoft.Json.Converters .DiscriminatedUnionConverter |
JArray | 61 | Newtonsoft.Json.Linq.JArray |
ReferenceLoopHandlingTests | 57 | Newtonsoft.Json.Tests.Serialization .ReferenceLoopHandlingTests |
DemoTests | 56 | Newtonsoft.Json.Tests.DemoTests |
JavaScriptDateTimeConverterTests | 53 | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests |
PersonRole | 53 | Newtonsoft.Json.Tests.LinqToSql .PersonRole |
JsonSerializerSettings | 52 | Newtonsoft.Json.JsonSerializerSettings |
JPropertyTests | 51 | Newtonsoft.Json.Tests.Linq .JPropertyTests |
Person | 49 | Newtonsoft.Json.Tests.LinqToSql.Person |
ReflectionObject | 48 | Newtonsoft.Json.Utilities .ReflectionObject |
JConstructor | 46 | Newtonsoft.Json.Linq.JConstructor |
BinaryConverter | 44 | Newtonsoft.Json.Converters .BinaryConverter |
Base64Encoder | 44 | Newtonsoft.Json.Utilities.Base64Encoder |
ConstructorHandlingTests | 43 | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests |
JsonSerializerTest+ISerializableTestObje ct | 43 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ISerializableTestObj ect |
JsonSchemaModelBuilderTests | 42 | Newtonsoft.Json.Tests.Schema .JsonSchemaModelBuilderTests |
IsoDateTimeConverter | 41 | Newtonsoft.Json.Converters .IsoDateTimeConverter |
TraceJsonReader | 41 | Newtonsoft.Json.Serialization .TraceJsonReader |
CamelCasePropertyNamesContractResolverTe sts | 41 | Newtonsoft.Json.Tests.Serialization .CamelCasePropertyNamesContractResolverT ests |
JsonPropertyCollection | 40 | Newtonsoft.Json.Serialization .JsonPropertyCollection |
EntityKeyMemberConverter | 39 | Newtonsoft.Json.Converters .EntityKeyMemberConverter |
BinaryConverterTests | 39 | Newtonsoft.Json.Tests.Converters .BinaryConverterTests |
ExpandoObjectConverterTests | 39 | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests |
KeyValuePairConverter | 38 | Newtonsoft.Json.Converters .KeyValuePairConverter |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 25 535 |
Average: | 28.85 |
Minimum: | 0 |
Maximum: | 2 102 |
Standard deviation: | 122.66 |
Variance: | 15 046 |
![]() | Rule warning: Overrides of Method() should call base.Method() |
// Overrides of Method() should refine the behavior of base.Method().
// If base.Method() is not called, the base behavior is not refined but it is replaced.
// Violations of this rule are a sign of design flaw,
// especially if the design provides valid reasons
// that advocates that the base behavior must be replaced and not refined.
//
// Discussions on this topic are available here:
// http://stackoverflow.com/questions/1107022/should-i-call-the-base-class-implementation-when-overriding-a-method-in-c-sharp
// http://stackoverflow.com/questions/2945147/make-sure-base-method-gets-called-in-c-sharp
warnif count > 0
from t in Types // Take account of third-party types too
// Bother only classes with descendant
where t.IsClass && t.NbChildren > 0
from mBase in t.InstanceMethods
where mBase.IsVirtual &&
!mBase.IsThirdParty &&
!mBase.IsAbstract &&
!mBase.IsExplicitInterfaceImpl
from mOverride in mBase.OverridesDirectDerived
where !mOverride.IsUsing(mBase)
select new { mOverride, shouldCall = mBase, definedInBaseClass = mBase.ParentType }
View Code Query or Rule Body
113 methods matched
methods | shouldCall | definedInBaseClass | Full Name |
---|---|---|---|
set_QuoteChar(Char) | set_QuoteChar(Char) | JsonReader | Newtonsoft.Json.JsonValidatingReader .set_QuoteChar(Char) |
ReadInternal() | ReadInternal() | JsonReader | Newtonsoft.Json.Bson.BsonReader .ReadInternal() |
ReadInternal() | ReadInternal() | JsonReader | Newtonsoft.Json.JsonTextReader .ReadInternal() |
ReadInternal() | ReadInternal() | JsonReader | Newtonsoft.Json.Linq.JTokenReader .ReadInternal() |
OnStringEscapeHandlingChanged() | OnStringEscapeHandlingChanged() | JsonWriter | Newtonsoft.Json.JsonTextWriter .OnStringEscapeHandlingChanged() |
WriteStartObject() | WriteStartObject() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteStartObject() |
WriteStartArray() | WriteStartArray() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteStartArray() |
WriteStartConstructor(String) | WriteStartConstructor(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter .WriteStartConstructor(String) |
WriteStartConstructor(String) | WriteStartConstructor(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteStartConstructor(String) |
WritePropertyName(String) | WritePropertyName(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WritePropertyName(String) |
WritePropertyName(String,Boolean) | WritePropertyName(String,Boolean) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WritePropertyName(String,Boolean) |
WriteEnd(JsonToken) | WriteEnd(JsonToken) | JsonWriter | Newtonsoft.Json.JsonTextWriter.WriteEnd (JsonToken) |
WriteEnd(JsonToken) | WriteEnd(JsonToken) | JsonWriter | Newtonsoft.Json.Linq.JTokenWriter .WriteEnd(JsonToken) |
WriteIndent() | WriteIndent() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteIndent() |
WriteValueDelimiter() | WriteValueDelimiter() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValueDelimiter() |
WriteIndentSpace() | WriteIndentSpace() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteIndentSpace() |
WriteNull() | WriteNull() | JsonWriter | Newtonsoft.Json.JsonTextWriter.WriteNull () |
WriteUndefined() | WriteUndefined() | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteUndefined() |
WriteRaw(String) | WriteRaw(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter.WriteRaw (String) |
WriteRaw(String) | WriteRaw(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter.WriteRaw (String) |
WriteRawValue(String) | WriteRawValue(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter .WriteRawValue(String) |
WriteValue(String) | WriteValue(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(String) |
WriteValue(Int32) | WriteValue(Int32) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Int32) |
WriteValue(UInt32) | WriteValue(UInt32) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt32) |
WriteValue(Int64) | WriteValue(Int64) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Int64) |
WriteValue(UInt64) | WriteValue(UInt64) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt64) |
WriteValue(Single) | WriteValue(Single) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Single) |
WriteValue(Double) | WriteValue(Double) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Double) |
WriteValue(Boolean) | WriteValue(Boolean) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Boolean) |
WriteValue(Int16) | WriteValue(Int16) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Int16) |
WriteValue(UInt16) | WriteValue(UInt16) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(UInt16) |
WriteValue(Char) | WriteValue(Char) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Char) |
WriteValue(Byte) | WriteValue(Byte) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Byte) |
WriteValue(SByte) | WriteValue(SByte) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(SByte) |
WriteValue(Decimal) | WriteValue(Decimal) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Decimal) |
WriteValue(DateTime) | WriteValue(DateTime) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(DateTime) |
WriteValue(DateTimeOffset) | WriteValue(DateTimeOffset) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(DateTimeOffset) |
WriteValue(Guid) | WriteValue(Guid) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Guid) |
WriteValue(TimeSpan) | WriteValue(TimeSpan) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(TimeSpan) |
WriteValue(Nullable<Single>) | WriteValue(Nullable<Single>) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Nullable<Single>) |
WriteValue(Nullable<Double>) | WriteValue(Nullable<Double>) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Nullable<Double>) |
WriteValue(Byte[]) | WriteValue(Byte[]) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Byte[]) |
WriteValue(Uri) | WriteValue(Uri) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteValue(Uri) |
WriteComment(String) | WriteComment(String) | JsonWriter | Newtonsoft.Json.Bson.BsonWriter .WriteComment(String) |
WriteComment(String) | WriteComment(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteComment(String) |
WriteWhitespace(String) | WriteWhitespace(String) | JsonWriter | Newtonsoft.Json.JsonTextWriter .WriteWhitespace(String) |
get_CanRead() | get_CanRead() | JsonConverter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .CustomJsonConverter+KeysJsonConverter .get_CanRead() |
get_CanRead() | get_CanRead() | JsonConverter | Newtonsoft.Json.Tests.Linq .JObjectTests+FooJsonConverter .get_CanRead() |
get_CanWrite() | get_CanWrite() | JsonConverter | Newtonsoft.Json.Converters .CustomCreationConverter<T>.get_CanWrite () |
get_CanWrite() | get_CanWrite() | JsonConverter | Newtonsoft.Json.Converters .ExpandoObjectConverter.get_CanWrite() |
get_CanWrite() | get_CanWrite() | JsonConverter | Newtonsoft.Json.Tests.Linq .JValueTests+ReadOnlyStringConverter .get_CanWrite() |
PopulateInternal(JsonReader,Object) | PopulateInternal(JsonReader,Object) | JsonSerializer | Newtonsoft.Json.Serialization .JsonSerializerProxy.PopulateInternal (JsonReader,Object) |
DeserializeInternal(JsonReader,Type) | DeserializeInternal(JsonReader,Type) | JsonSerializer | Newtonsoft.Json.Serialization .JsonSerializerProxy.DeserializeInternal (JsonReader,Type) |
SerializeInternal(JsonWriter,Object,Type ) | SerializeInternal(JsonWriter,Object,Type) | JsonSerializer | Newtonsoft.Json.Serialization .JsonSerializerProxy.SerializeInternal (JsonWriter,Object,Type) |
WriteStartObject() | WriteStartObject() | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WriteStartObject() |
WritePropertyName(String) | WritePropertyName(String) | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WritePropertyName (String) |
WritePropertyName(String,Boolean) | WritePropertyName(String,Boolean) | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WritePropertyName (String,Boolean) |
WriteNull() | WriteNull() | JsonTextWriter | Newtonsoft.Json.Tests .CustomJsonTextWriter.WriteNull() |
get_LocalName() | get_LocalName() | XmlNodeWrapper | Newtonsoft.Json.Converters .XmlDocumentTypeWrapper.get_LocalName() |
get_NodeType() | get_NodeType() | XObjectWrapper | Newtonsoft.Json.Converters .XDeclarationWrapper.get_NodeType() |
get_LocalName() | get_LocalName() | XObjectWrapper | Newtonsoft.Json.Converters .XDocumentTypeWrapper.get_LocalName() |
get_LocalName() | get_LocalName() | XObjectWrapper | Newtonsoft.Json.Converters .XProcessingInstructionWrapper .get_LocalName() |
get_LocalName() | get_LocalName() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_LocalName() |
get_ChildNodes() | get_ChildNodes() | XObjectWrapper | Newtonsoft.Json.Converters .XContainerWrapper.get_ChildNodes() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters .XContainerWrapper.get_ParentNode() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters.XTextWrapper .get_ParentNode() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters .XCommentWrapper.get_ParentNode() |
get_ParentNode() | get_ParentNode() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_ParentNode() |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters.XTextWrapper .get_Value() |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters .XCommentWrapper.get_Value() |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters .XProcessingInstructionWrapper.get_Value () |
get_Value() | get_Value() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_Value() |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters.XTextWrapper .set_Value(String) |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters .XCommentWrapper.set_Value(String) |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters .XProcessingInstructionWrapper.set_Value (String) |
set_Value(String) | set_Value(String) | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.set_Value(String) |
AppendChild(IXmlNode) | AppendChild(IXmlNode) | XObjectWrapper | Newtonsoft.Json.Converters .XContainerWrapper.AppendChild(IXmlNode) |
get_NamespaceUri() | get_NamespaceUri() | XObjectWrapper | Newtonsoft.Json.Converters .XAttributeWrapper.get_NamespaceUri() |
CreateMemberValueProvider(MemberInfo) | CreateMemberValueProvider(MemberInfo) | DefaultContractResolver | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ReflectionContractRe solver.CreateMemberValueProvider (MemberInfo) |
ResolvePropertyName(String) | ResolvePropertyName(String) | DefaultContractResolver | Newtonsoft.Json.Serialization .CamelCasePropertyNamesContractResolver .ResolvePropertyName(String) |
ResolvePropertyName(String) | ResolvePropertyName(String) | DefaultContractResolver | Newtonsoft.Json.Tests.TestObjects .MetroPropertyNameResolver .ResolvePropertyName(String) |
get_First() | get_First() | JToken | Newtonsoft.Json.Linq.JContainer .get_First() |
get_Last() | get_Last() | JToken | Newtonsoft.Json.Linq.JContainer.get_Last () |
Children() | Children() | JToken | Newtonsoft.Json.Linq.JContainer.Children () |
Values<T>() | Values<T>() | JToken | Newtonsoft.Json.Linq.JContainer.Values<T >() |
ToString() | ToString() | JToken | Newtonsoft.Json.Linq.JValue.ToString() |
GetMetaObject(Expression) | GetMetaObject(Expression) | JToken | Newtonsoft.Json.Linq.JValue .GetMetaObject(Expression) |
RemoveItemAt(Int32) | RemoveItemAt(Int32) | JContainer | Newtonsoft.Json.Linq.JProperty .RemoveItemAt(Int32) |
RemoveItem(JToken) | RemoveItem(JToken) | JContainer | Newtonsoft.Json.Linq.JProperty .RemoveItem(JToken) |
GetItem(Int32) | GetItem(Int32) | JContainer | Newtonsoft.Json.Linq.JProperty.GetItem (Int32) |
ClearItems() | ClearItems() | JContainer | Newtonsoft.Json.Linq.JProperty .ClearItems() |
ContainsItem(JToken) | ContainsItem(JToken) | JContainer | Newtonsoft.Json.Linq.JProperty .ContainsItem(JToken) |
ValidateToken(JToken,JToken) | ValidateToken(JToken,JToken) | JContainer | Newtonsoft.Json.Linq.JObject .ValidateToken(JToken,JToken) |
CloneToken() | CloneToken() | JValue | Newtonsoft.Json.Linq.JRaw.CloneToken() |
get_IsTransient() | get_IsTransient() | JsonSerializerTest+BaseClassVirtual | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .get_IsTransient() |
set_IsTransient(Boolean) | set_IsTransient(Boolean) | JsonSerializerTest+BaseClassVirtual | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .set_IsTransient(Boolean) |
get_Data() | get_Data() | JsonSerializerTest+ResponseWithNewGenericPropertyVirtual<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyOverride<T>.get_Data() |
set_Data(T) | set_Data(T) | JsonSerializerTest+ResponseWithNewGenericPropertyVirtual<T> | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyOverride<T>.set_Data(T) |
get_VirtualMember() | get_VirtualMember() | JsonSerializerTest+BaseDataContractWithHidden | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildDataContractWit hHidden.get_VirtualMember() |
set_VirtualMember(String) | set_VirtualMember(String) | JsonSerializerTest+BaseDataContractWithHidden | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildDataContractWit hHidden.set_VirtualMember(String) |
Statistics
Stat | shouldCall | definedInBaseClass |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Critical Rule warning: Do not hide base class methods |
// To fix a violation of this rule, remove or rename the method, or change the parameter signature
// so that the method does not hide the base method.
// More on hiding vs. virtual usefulness here:
// http://www.artima.com/intv/nonvirtual.html
// http://blogs.msdn.com/b/ericlippert/archive/2008/05/21/method-hiding-apologia.aspx
warnif count > 0
// Define a lookup table indexing methods by their name including parameters signature.
let lookup = Methods.Where(m => !m.IsConstructor && !m.IsStatic && !m.IsGeneratedByCompiler)
.ToLookup(m1 => m1.Name)
from t in Application.Types
where !t.IsStatic && t.IsClass &&
// Discard classes deriving directly from System.Object
t.DepthOfInheritance > 1
where t.BaseClasses.Any()
// For each methods not overriding any methods (new slot),
// let's check if it hides by name some methods defined in base classe.
from m in t.InstanceMethods
where m.IsNewSlot && !m.IsExplicitInterfaceImpl && !m.IsGeneratedByCompiler
// Notice how lookup is used to quickly retrieve methods with same name as m.
// This makes the query 10 times faster than iterating each base methods to check their name.
let baseMethodsHidden = lookup[m.Name].Where(m1 => m1 != m && t.DeriveFrom(m1.ParentType))
where baseMethodsHidden.Count() > 0
select new { m, baseMethodsHidden }View Code Query or Rule Body
6 methods matched
methods | baseMethodsHidden | Full Name |
---|---|---|
get_IsTransient() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .get_IsTransient() |
set_IsTransient(Boolean) | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildClassVirtual .set_IsTransient(Boolean) |
get_Data() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ResponseWithNewGener icPropertyVirtual<T>.get_Data() |
get_NewMember() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ChildDataContractWit hHidden.get_NewMember() |
get_VirtualWithDataMember() | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+SubWithContractVirtu alProperties.get_VirtualWithDataMember() |
set_VirtualWithDataMember(String) | 1 method | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+SubWithContractVirtu alProperties.set_VirtualWithDataMember (String) |
Statistics
Stat | baseMethodsHidden |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: A stateless class or structure might be turned into a static type |
// This rule indicates stateless types that might
// eventually be turned into static classes.
warnif count > 0 from t in JustMyCode.Types where
!t.IsStatic &&
!t.IsGeneric &&
t.InstanceFields.Count() == 0 &&
// Don't match:
// --> types that implement some interfaces.
t.NbInterfacesImplemented == 0 &&
// --> or classes that have sub-classes children.
t.NbChildren == 0 &&
// --> or classes that have a base class
((t.IsClass && t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1) ||
t.IsStructure)
select t
View Code Query or Rule Body
116 types matched
types | Full Name |
---|---|
Department+DepartmentMetadata | Newtonsoft.Json.Tests.LinqToSql .Department+DepartmentMetadata |
BulkInsertTask_DSL | Newtonsoft.Json.Tests.Schema .BulkInsertTask_DSL |
JsonSerializerTest+EnumerableArrayProper tyClass | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+EnumerableArrayPrope rtyClass |
JsonSerializerTest+ErroringTestClass | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ErroringTestClass |
SerializationErrorHandlingTests+Somethin gElse | Newtonsoft.Json.Tests.Serialization .SerializationErrorHandlingTests+Somethi ngElse |
ErrorTestObject | Newtonsoft.Json.Tests.Serialization .ErrorTestObject |
ShouldSerializeTests+A | Newtonsoft.Json.Tests.Serialization .ShouldSerializeTests+A |
IncompatibleJsonAttributeClass | Newtonsoft.Json.Tests.TestObjects .IncompatibleJsonAttributeClass |
ConvertingJsonAndXmlTests | Newtonsoft.Json.Tests.Documentation .ConvertingJsonAndXmlTests |
JsonNetVsWindowsDataJsonTests | Newtonsoft.Json.Tests.Documentation .JsonNetVsWindowsDataJsonTests |
JsonSchemaTests | Newtonsoft.Json.Tests.Documentation .JsonSchemaTests |
LinqToJsonTests | Newtonsoft.Json.Tests.Documentation .LinqToJsonTests |
HttpClient | Newtonsoft.Json.Tests.Documentation .HttpClient |
SerializationTests | Newtonsoft.Json.Tests.Documentation .SerializationTests |
LogLevel | Newtonsoft.Json.Tests.Documentation .LogLevel |
Logger | Newtonsoft.Json.Tests.Documentation .Logger |
DeserializeFromBson | Newtonsoft.Json.Tests.Documentation .Samples.Bson.DeserializeFromBson |
DeserializeFromBsonCollection | Newtonsoft.Json.Tests.Documentation .Samples.Bson .DeserializeFromBsonCollection |
SerializeToBson | Newtonsoft.Json.Tests.Documentation .Samples.Bson.SerializeToBson |
ReadJsonWithJsonTextReader | Newtonsoft.Json.Tests.Documentation .Samples.Json.ReadJsonWithJsonTextReader |
WriteJsonWithJsonTextWriter | Newtonsoft.Json.Tests.Documentation .Samples.Json .WriteJsonWithJsonTextWriter |
Clone | Newtonsoft.Json.Tests.Documentation .Samples.Linq.Clone |
CreateJsonAnonymousObject | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonAnonymousObject |
CreateJsonCollectionInitializer | Newtonsoft.Json.Tests.Documentation .Samples.Linq .CreateJsonCollectionInitializer |
CreateJsonDeclaratively | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonDeclaratively |
CreateJsonDynamic | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonDynamic |
CreateJsonJTokenWriter | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonJTokenWriter |
CreateJsonManually | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateJsonManually |
CreateReader | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateReader |
CreateWriter | Newtonsoft.Json.Tests.Documentation .Samples.Linq.CreateWriter |
DeepEquals | Newtonsoft.Json.Tests.Documentation .Samples.Linq.DeepEquals |
DeserializeWithLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq.DeserializeWithLinq |
FromObject | Newtonsoft.Json.Tests.Documentation .Samples.Linq.FromObject |
JObjectProperties | Newtonsoft.Json.Tests.Documentation .Samples.Linq.JObjectProperties |
JValueCast | Newtonsoft.Json.Tests.Documentation .Samples.Linq.JValueCast |
JValueValue | Newtonsoft.Json.Tests.Documentation .Samples.Linq.JValueValue |
ModifyJson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ModifyJson |
ParseJsonAny | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ParseJsonAny |
ParseJsonArray | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ParseJsonArray |
ParseJsonObject | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ParseJsonObject |
QueryJson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJson |
QueryJsonDynamic | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJsonDynamic |
QueryJsonLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJsonLinq |
QueryJsonSelectToken | Newtonsoft.Json.Tests.Documentation .Samples.Linq.QueryJsonSelectToken |
QueryJsonSelectTokenWithLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq .QueryJsonSelectTokenWithLinq |
ReadJson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ReadJson |
ReadJTokenFromBson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ReadJTokenFromBson |
SerializeWithLinq | Newtonsoft.Json.Tests.Documentation .Samples.Linq.SerializeWithLinq |
ToObjectComplex | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToObjectComplex |
ToObjectGeneric | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToObjectGeneric |
ToObjectType | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToObjectType |
ToString | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToString |
ToStringJsonConverter | Newtonsoft.Json.Tests.Documentation .Samples.Linq.ToStringJsonConverter |
WriteJTokenToBson | Newtonsoft.Json.Tests.Documentation .Samples.Linq.WriteJTokenToBson |
WriteToJsonFile | Newtonsoft.Json.Tests.Documentation .Samples.Linq.WriteToJsonFile |
CreateJsonSchemaManually | Newtonsoft.Json.Tests.Documentation .Samples.Schema.CreateJsonSchemaManually |
JsonSchemaParse | Newtonsoft.Json.Tests.Documentation .Samples.Schema.JsonSchemaParse |
JsonValidatingReaderAndSerializer | Newtonsoft.Json.Tests.Documentation .Samples.Schema .JsonValidatingReaderAndSerializer |
JTokenIsValid | Newtonsoft.Json.Tests.Documentation .Samples.Schema.JTokenIsValid |
JTokenIsValidWithMessages | Newtonsoft.Json.Tests.Documentation .Samples.Schema .JTokenIsValidWithMessages |
JTokenValidateWithEvent | Newtonsoft.Json.Tests.Documentation .Samples.Schema.JTokenValidateWithEvent |
LoadJsonSchemaFromFile | Newtonsoft.Json.Tests.Documentation .Samples.Schema.LoadJsonSchemaFromFile |
RefJsonSchemaResolver | Newtonsoft.Json.Tests.Documentation .Samples.Schema.RefJsonSchemaResolver |
SaveJsonSchemaToFile | Newtonsoft.Json.Tests.Documentation .Samples.Schema.SaveJsonSchemaToFile |
CustomContractResolver | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .CustomContractResolver |
CustomJsonConverter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.CustomJsonConverter |
CustomTraceWriter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.CustomTraceWriter |
DataContractAndDataMember | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DataContractAndDataMember |
DefaultValueAttributeIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DefaultValueAttributeIgnore |
DefaultValueHandlingIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DefaultValueHandlingIgnore |
DeserializeAnonymousType | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeAnonymousType |
DeserializeCollection | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeCollection |
DeserializeConstructorHandling | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeConstructorHandling |
DeserializeCustomCreationConverter | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeCustomCreationConverter |
DeserializeDataSet | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.DeserializeDataSet |
DeserializeDictionary | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeDictionary |
DeserializeMissingMemberHandling | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeMissingMemberHandling |
DeserializeObject | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.DeserializeObject |
DeserializeObjectCreationHandling | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeObjectCreationHandling |
DeserializeWithJsonSerializerFromFile | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeWithJsonSerializerFromFile |
ErrorHandlingAttribute | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ErrorHandlingAttribute |
ErrorHandlingEvent | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.ErrorHandlingEvent |
JsonConverterAttributeClass | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonConverterAttributeClass |
JsonConverterAttributeProperty | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonConverterAttributeProperty |
JsonObjectAttributeOptIn | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonObjectAttributeOptIn |
JsonObjectAttributeOverrideIEnumerable | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonObjectAttributeOverrideIEnumerable |
JsonPropertyItemLevelSetting | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonPropertyItemLevelSetting |
JsonPropertyName | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.JsonPropertyName |
JsonPropertyOrder | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.JsonPropertyOrder |
JsonPropertyPropertyLevelSetting | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .JsonPropertyPropertyLevelSetting |
JsonPropertyRequired | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.JsonPropertyRequired |
MaxDepth | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.MaxDepth |
NullValueHandlingIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .NullValueHandlingIgnore |
PopulateObject | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.PopulateObject |
PreserveReferencesHandlingObject | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .PreserveReferencesHandlingObject |
PropertyJsonIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.PropertyJsonIgnore |
ReferenceLoopHandlingIgnore | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ReferenceLoopHandlingIgnore |
SerializationCallbackAttributes | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializationCallbackAttributes |
SerializeCollection | Newtonsoft.Json.Tests.Documentation .Samples.Serializer.SerializeCollection |
SerializeConditionalProperty | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializeConditionalProperty |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule warning: Non-static classes should be instantiated or turned to static |
// Notice that classes only instantiated through reflection, like plug-in root classes
// are matched by this rules.
warnif count > 0
from t in JustMyCode.Types
where t.IsClass &&
//!t.IsPublic && // if you are developing a framework,
// you might not want to match public classes
!t.IsStatic &&
!t.IsAttributeClass && // Attributes class are never seen as instantiated
!t.DeriveFrom("System.MarshalByRefObject".AllowNoMatch()) // Types instantiated through remoting infrastructure
// find the first constructor of t called
let ctorCalled = t.Constructors.FirstOrDefault(ctor => ctor.NbMethodsCallingMe > 0)
// match t if none of its constructors is called.
where ctorCalled == null
select new { t, t.Visibility }View Code Query or Rule Body
366 types matched
types | Visibility | Full Name |
---|---|---|
CollectionWrapper<T> | Internal | Newtonsoft.Json.Utilities .CollectionWrapper<T> |
DictionaryWrapper<TKey,TValue> | Internal | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue> |
ExpressionValueProvider | Public | Newtonsoft.Json.Serialization .ExpressionValueProvider |
DemoTests | Public | Newtonsoft.Json.Tests.DemoTests |
DemoTests+PersonDemo | Public | Newtonsoft.Json.Tests .DemoTests+PersonDemo |
DemoTests+House | Public | Newtonsoft.Json.Tests.DemoTests+House |
DemoTests+House1 | Public | Newtonsoft.Json.Tests.DemoTests+House1 |
DemoTests+House2 | Public | Newtonsoft.Json.Tests.DemoTests+House2 |
DemoTests+House4 | Public | Newtonsoft.Json.Tests.DemoTests+House4 |
DemoTests+House5 | Public | Newtonsoft.Json.Tests.DemoTests+House5 |
DataServicesTestDatabaseEntities | Public | Newtonsoft.Json.Tests .DataServicesTestDatabaseEntities |
ExceptionTests | Public | Newtonsoft.Json.Tests.ExceptionTests |
JsonArrayAttributeTests | Public | Newtonsoft.Json.Tests .JsonArrayAttributeTests |
JsonConvertTest | Public | Newtonsoft.Json.Tests.JsonConvertTest |
JsonConvertTest+Nest | Public | Newtonsoft.Json.Tests .JsonConvertTest+Nest |
JsonTextReaderTest | Public | Newtonsoft.Json.Tests.JsonTextReaderTest |
JsonTextWriterTest | Public | Newtonsoft.Json.Tests.JsonTextWriterTest |
JsonValidatingReaderTests | Public | Newtonsoft.Json.Tests .JsonValidatingReaderTests |
PerformanceTests | Public | Newtonsoft.Json.Tests.PerformanceTests |
BsonReaderTests | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests |
BsonReaderTests+BigIntegerTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BigIntegerTestClass |
BsonReaderTests+RegexTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+RegexTestClass |
BsonReaderTests+Cat | Private | Newtonsoft.Json.Tests.Bson .BsonReaderTests+Cat |
BsonReaderTests+BytesTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+BytesTestClass |
BsonReaderTests+ObjectTestClass | Public | Newtonsoft.Json.Tests.Bson .BsonReaderTests+ObjectTestClass |
BsonWriterTests | Public | Newtonsoft.Json.Tests.Bson .BsonWriterTests |
BinaryConverterTests | Public | Newtonsoft.Json.Tests.Converters .BinaryConverterTests |
CustomCreationConverterTests | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests |
CustomCreationConverterTests+MyThingConv erter | Public | Newtonsoft.Json.Tests.Converters .CustomCreationConverterTests+MyThingCon verter |
DataSetConverterTests | Public | Newtonsoft.Json.Tests.Converters .DataSetConverterTests |
DataTableConverterTests | Public | Newtonsoft.Json.Tests.Converters .DataTableConverterTests |
ExpandoObjectConverterTests | Public | Newtonsoft.Json.Tests.Converters .ExpandoObjectConverterTests |
IsoDateTimeConverterTests | Public | Newtonsoft.Json.Tests.Converters .IsoDateTimeConverterTests |
JavaScriptDateTimeConverterTests | Public | Newtonsoft.Json.Tests.Converters .JavaScriptDateTimeConverterTests |
DateIntConverter | Public | Newtonsoft.Json.Tests.Converters .DateIntConverter |
KeyValuePairConverterTests | Public | Newtonsoft.Json.Tests.Converters .KeyValuePairConverterTests |
ObjectIdConverterTests | Public | Newtonsoft.Json.Tests.Converters .ObjectIdConverterTests |
RegexConverterTests | Public | Newtonsoft.Json.Tests.Converters .RegexConverterTests |
StringEnumConverterTests | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests |
StringEnumConverterTests+Bucket | Public | Newtonsoft.Json.Tests.Converters .StringEnumConverterTests+Bucket |
VersionConverterTests | Public | Newtonsoft.Json.Tests.Converters .VersionConverterTests |
XmlNodeConverterTest | Public | Newtonsoft.Json.Tests.Converters .XmlNodeConverterTest |
Department+DepartmentMetadata | Public | Newtonsoft.Json.Tests.LinqToSql .Department+DepartmentMetadata |
DepartmentConverter | Public | Newtonsoft.Json.Tests.LinqToSql .DepartmentConverter |
GuidByteArrayConverter | Public | Newtonsoft.Json.Tests.LinqToSql .GuidByteArrayConverter |
LinqToSqlClassesDataContext | Public | Newtonsoft.Json.Tests.LinqToSql .LinqToSqlClassesDataContext |
Person+PersonMetadata | Public | Newtonsoft.Json.Tests.LinqToSql .Person+PersonMetadata |
Role+RoleMetadata | Public | Newtonsoft.Json.Tests.LinqToSql .Role+RoleMetadata |
LinqToSqlClassesSerializationTests | Public | Newtonsoft.Json.Tests.LinqToSql .LinqToSqlClassesSerializationTests |
ExtensionsTests | Public | Newtonsoft.Json.Tests.Schema .ExtensionsTests |
JsonSchemaBuilderTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaBuilderTests |
JsonSchemaGeneratorTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests |
JsonSchemaGeneratorTests+X | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+X |
JsonSchemaGeneratorTests+Y | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaGeneratorTests+Y |
NullableInt32TestClass | Public | Newtonsoft.Json.Tests.Schema .NullableInt32TestClass |
Workspace | Public | Newtonsoft.Json.Tests.Schema.Workspace |
ControlFlowItem | Public | Newtonsoft.Json.Tests.Schema .ControlFlowItem |
Task | Public | Newtonsoft.Json.Tests.Schema.Task |
DataFlowTask_DSL | Public | Newtonsoft.Json.Tests.Schema .DataFlowTask_DSL |
SequenceContainer_DSL | Public | Newtonsoft.Json.Tests.Schema .SequenceContainer_DSL |
BulkInsertTask_DSL | Public | Newtonsoft.Json.Tests.Schema .BulkInsertTask_DSL |
JsonSchemaModelBuilderTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaModelBuilderTests |
JsonSchemaNodeTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaNodeTests |
JsonSchemaSpecTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaSpecTests |
JsonSchemaTests | Public | Newtonsoft.Json.Tests.Schema .JsonSchemaTests |
CamelCasePropertyNamesContractResolverTe sts | Public | Newtonsoft.Json.Tests.Serialization .CamelCasePropertyNamesContractResolverT ests |
ConstructorHandlingTests | Public | Newtonsoft.Json.Tests.Serialization .ConstructorHandlingTests |
ContractResolverTests | Public | Newtonsoft.Json.Tests.Serialization .ContractResolverTests |
DefaultValueHandlingTests | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests |
DefaultValueHandlingTests+MyClass | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+MyClass |
DefaultValueHandlingTests+DefaultHandler | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingTests+DefaultHandle r |
TestClass | Public | Newtonsoft.Json.Tests.Serialization .TestClass |
DefaultValueHandlingDeserializeHolder | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializeHolder |
DefaultValueHandlingDeserializePopulate | Public | Newtonsoft.Json.Tests.Serialization .DefaultValueHandlingDeserializePopulate |
DynamicConcreteTests | Public | Newtonsoft.Json.Tests.Serialization .DynamicConcreteTests |
AbstractWithNoConcrete | Public | Newtonsoft.Json.Tests.Serialization .AbstractWithNoConcrete |
DynamicTests | Public | Newtonsoft.Json.Tests.Serialization .DynamicTests |
DynamicTests+DictionaryDynamicObject | Public | Newtonsoft.Json.Tests.Serialization .DynamicTests+DictionaryDynamicObject |
ErrorSettingDynamicObject | Public | Newtonsoft.Json.Tests.Serialization .ErrorSettingDynamicObject |
EntitiesSerializationTests | Public | Newtonsoft.Json.Tests.Serialization .EntitiesSerializationTests |
ExtensionDataTests | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests |
ExtensionDataTests+ExtendedObject | Private | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtendedObject |
ExtensionDataTests+CustomerInvoice | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+CustomerInvoice |
ExtensionDataTests+ExtensionDataTestClas s | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss |
ExtensionDataTests+ExtensionDataAttribut esInheritanceTestClass | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass |
ExtensionDataTests+PublicExtensionDataAt tributeTestClassWithNonDefaultConstructo r | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicExtensionDataA ttributeTestClassWithNonDefaultConstruct or |
ExtensionDataTests+PublicNoReadExtension DataAttributeTestClass | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicNoReadExtensio nDataAttributeTestClass |
ExtensionDataTests+PublicJTokenExtension DataAttributeTestClass | Public | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+PublicJTokenExtensio nDataAttributeTestClass |
TaskController | Public | Newtonsoft.Json.Tests.Serialization .TaskController |
HasSettableProperty | Public | Newtonsoft.Json.Tests.Serialization .HasSettableProperty |
DependencyInjectionTests | Public | Newtonsoft.Json.Tests.Serialization .DependencyInjectionTests |
FSharpTests | Public | Newtonsoft.Json.Tests.Serialization .FSharpTests |
ImmutableCollectionsTests | Public | Newtonsoft.Json.Tests.Serialization .ImmutableCollectionsTests |
JsonPropertyCollectionTests | Public | Newtonsoft.Json.Tests.Serialization .JsonPropertyCollectionTests |
JsonSerializerTest | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest |
JsonSerializerTest+Link | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Link |
JsonSerializerTest+CommentTestObject | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+CommentTestObject |
JsonSerializerTest+BaseWithoutContract | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseWithoutContract |
JsonSerializerTest+ConstructorAndDefault ValueAttributeTestClass | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndDefaul tValueAttributeTestClass |
JsonSerializerTest+ConstructorAndRequire dTestClass | Public | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ConstructorAndRequir edTestClass |
Statistics
Stat | Visibility |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Methods should be declared static if possible |
warnif count > 0
// When an instance method can be safely declared as static you should declare it as static.
// Since it doesn't use any instance data and method of its type and base-types,
// you should consider if such a method could be moved to a static utility class
// or if it is strongly related enough to its current declaring type to stay in it.
//
// Turning an instance method into a static method is a micro performance optimization
// since a static method is a bit cheaper to invoke than an instance method.
from t in JustMyCode.Types.Where(t =>
!t.IsStatic && !t.IsInterface &&
!t.IsEnumeration && !t.IsDelegate &&
!t.IsGeneratedByCompiler)
let methodsThatCanBeMadeStatic =
from m in t.InstanceMethods
// An instance method can be turned to static if it is not virtual,
// not using the this reference and also, not using
// any of its class or base classes instance fields or instance methods.
where !m.IsAbstract && !m.IsVirtual &&
!m.AccessThis && !m.IsExplicitInterfaceImpl &&
// Optimization: Using FirstOrDefault() avoid to check all members,
// as soon as one member is found
// we know the method m cannot be made static.
m.MembersUsed.FirstOrDefault(
mUsed => !mUsed.IsStatic &&
(mUsed.ParentType == t ||
t.DeriveFrom(mUsed.ParentType))
) == null
select m
from m in methodsThatCanBeMadeStatic
let staticFieldsUsed = m.ParentType.StaticFields.UsedBy(m).Where(f => !f.IsGeneratedByCompiler)
select new { m, staticFieldsUsed }View Code Query or Rule Body
1,730 methods matched
methods | staticFieldsUsed | Full Name |
---|---|---|
InternalWriteRaw() | 0 field | Newtonsoft.Json.JsonWriter .InternalWriteRaw() |
ValidIdentifierChar(Char) | 0 field | Newtonsoft.Json.JsonTextReader .ValidIdentifierChar(Char) |
IsPropertyDefinied(JsonSchemaModel ,String) | 0 field | Newtonsoft.Json.JsonValidatingReader .IsPropertyDefinied(JsonSchemaModel ,String) |
GetRequiredProperties(JsonSchemaModel) | 0 field | Newtonsoft.Json .JsonValidatingReader+SchemaScope .GetRequiredProperties(JsonSchemaModel) |
CalculateSize(Int32) | 0 field | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSize(Int32) |
CalculateSizeWithLength(Int32,Boolean) | 0 field | Newtonsoft.Json.Bson.BsonBinaryWriter .CalculateSizeWithLength(Int32,Boolean) |
BytesInSequence(Byte) | 4 fields | Newtonsoft.Json.Bson.BsonReader .BytesInSequence(Byte) |
ReadByteArray(JsonReader) | 0 field | Newtonsoft.Json.Converters .BinaryConverter.ReadByteArray (JsonReader) |
HasFlag(RegexOptions,RegexOptions) | 0 field | Newtonsoft.Json.Converters .RegexConverter.HasFlag(RegexOptions ,RegexOptions) |
ReadRegexString(JsonReader) | 0 field | Newtonsoft.Json.Converters .RegexConverter.ReadRegexString (JsonReader) |
WrapXml(Object) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.WrapXml(Object) |
PushParentNamespaces(IXmlNode ,XmlNamespaceManager) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.PushParentNamespaces (IXmlNode,XmlNamespaceManager) |
ResolveFullName(IXmlNode ,XmlNamespaceManager) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.ResolveFullName (IXmlNode,XmlNamespaceManager) |
IsArray(IXmlNode) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.IsArray(IXmlNode) |
AddJsonArrayAttribute(IXmlElement ,IXmlDocument) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.AddJsonArrayAttribute (IXmlElement,IXmlDocument) |
CreateElement(String,IXmlDocument,String ,XmlNamespaceManager) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.CreateElement(String ,IXmlDocument,String,XmlNamespaceManager ) |
IsNamespaceAttribute(String,String&) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.IsNamespaceAttribute (String,String&) |
ValueAttributes(IEnumerable<IXmlNode>) | 0 field | Newtonsoft.Json.Converters .XmlNodeConverter.ValueAttributes (IEnumerable<IXmlNode>) |
GenerateCreateMethodCallIL(MethodBase ,ILGenerator,Int32) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateMethodCallIL(MethodBase ,ILGenerator,Int32) |
GenerateCreateDefaultConstructorIL(Type ,ILGenerator) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateDefaultConstructorIL(Type ,ILGenerator) |
GenerateCreateGetPropertyIL(PropertyInfo ,ILGenerator) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateGetPropertyIL (PropertyInfo,ILGenerator) |
GenerateCreateGetFieldIL(FieldInfo ,ILGenerator) | 0 field | Newtonsoft.Json.Utilities .DynamicReflectionDelegateFactory .GenerateCreateGetFieldIL(FieldInfo ,ILGenerator) |
EnsureCastExpression(Expression,Type) | 0 field | Newtonsoft.Json.Utilities .ExpressionReflectionDelegateFactory .EnsureCastExpression(Expression,Type) |
UnescapeReference(String) | 0 field | Newtonsoft.Json.Schema.JsonSchemaBuilder .UnescapeReference(String) |
ProcessType(JToken) | 0 field | Newtonsoft.Json.Schema.JsonSchemaBuilder .ProcessType(JToken) |
GetTitle(Type) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetTitle(Type) |
GetDescription(Type) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetDescription(Type ) |
AddNullType(JsonSchemaType,Required) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.AddNullType (JsonSchemaType,Required) |
HasFlag(DefaultValueHandling ,DefaultValueHandling) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.HasFlag (DefaultValueHandling ,DefaultValueHandling) |
GetJsonSchemaType(Type,Required) | 0 field | Newtonsoft.Json.Schema .JsonSchemaGenerator.GetJsonSchemaType (Type,Required) |
WriteType(String,JsonWriter ,JsonSchemaType) | 0 field | Newtonsoft.Json.Schema.JsonSchemaWriter .WriteType(String,JsonWriter ,JsonSchemaType) |
WritePropertyIfNotNull(JsonWriter,String ,Object) | 0 field | Newtonsoft.Json.Schema.JsonSchemaWriter .WritePropertyIfNotNull(JsonWriter ,String,Object) |
get_DynamicCodeGeneration() | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .get_DynamicCodeGeneration() |
ShouldSerializeEntityMember(MemberInfo) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .ShouldSerializeEntityMember(MemberInfo) |
GetAttributeConstructor(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetAttributeConstructor(Type) |
GetParametrizedConstructor(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetParametrizedConstructor(Type) |
GetDefaultCreator(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetDefaultCreator(Type) |
GetClassHierarchyForType(Type) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .GetClassHierarchyForType(Type) |
CreateShouldSerializeTest(MemberInfo) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .CreateShouldSerializeTest(MemberInfo) |
SetIsSpecifiedActions(JsonProperty ,MemberInfo,Boolean) | 0 field | Newtonsoft.Json.Serialization .DefaultContractResolver .SetIsSpecifiedActions(JsonProperty ,MemberInfo,Boolean) |
GetMappings(Object) | 0 field | Newtonsoft.Json.Serialization .DefaultReferenceResolver.GetMappings (Object) |
GetTraceEventType(TraceLevel) | 0 field | Newtonsoft.Json.Serialization .DiagnosticsTraceWriter .GetTraceEventType(TraceLevel) |
GetTokenValue<T>(Object) | 0 field | Newtonsoft.Json.Serialization .JsonFormatterConverter.GetTokenValue<T> (Object) |
CreateJToken(JsonReader,JsonContract) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CreateJToken(JsonReader,JsonContract) |
GetExpectedDescription(JsonContract) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .GetExpectedDescription(JsonContract) |
CheckedRead(JsonReader) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .CheckedRead(JsonReader) |
HasNoDefinedType(JsonContract) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .HasNoDefinedType(JsonContract) |
HasFlag(DefaultValueHandling ,DefaultValueHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader.HasFlag (DefaultValueHandling ,DefaultValueHandling) |
ReadForType(JsonReader,JsonContract ,Boolean) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .ReadForType(JsonReader,JsonContract ,Boolean) |
SetPropertyPresence(JsonReader ,JsonProperty,Dictionary<JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalReader .SetPropertyPresence(JsonReader ,JsonProperty,Dictionary<JsonProperty ,JsonSerializerInternalReader+PropertyPr esence>) |
ResolveIsReference(JsonContract ,JsonProperty,JsonContainerContract ,JsonProperty) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter .ResolveIsReference(JsonContract ,JsonProperty,JsonContainerContract ,JsonProperty) |
HasFlag(DefaultValueHandling ,DefaultValueHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter.HasFlag (DefaultValueHandling ,DefaultValueHandling) |
HasFlag(PreserveReferencesHandling ,PreserveReferencesHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter.HasFlag (PreserveReferencesHandling ,PreserveReferencesHandling) |
HasFlag(TypeNameHandling ,TypeNameHandling) | 0 field | Newtonsoft.Json.Serialization .JsonSerializerInternalWriter.HasFlag (TypeNameHandling,TypeNameHandling) |
IsMultiContent(Object) | 0 field | Newtonsoft.Json.Linq.JContainer .IsMultiContent(Object) |
CreateFromContent(Object) | 0 field | Newtonsoft.Json.Linq.JContainer .CreateFromContent(Object) |
EnsureValue(Object) | 0 field | Newtonsoft.Json.Linq.JContainer .EnsureValue(Object) |
GetKeyForItem(JToken) | 0 field | Newtonsoft.Json.Linq .JPropertyKeyedCollection.GetKeyForItem (JToken) |
GetEndToken(JContainer) | 0 field | Newtonsoft.Json.Linq.JTokenReader .GetEndToken(JContainer) |
IsValid(Int32,Int32,Boolean) | 0 field | Newtonsoft.Json.Linq.JsonPath .ArraySliceFilter.IsValid(Int32,Int32 ,Boolean) |
GetOffset(DateTime,DateFormatHandling) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .GetOffset(DateTime,DateFormatHandling) |
BytesToHex(Byte[],Boolean) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .BytesToHex(Byte[],Boolean) |
HexToBytes(String) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .HexToBytes(String) |
TestSetup() | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .TestSetup() |
EscapeJson(String) | 0 field | Newtonsoft.Json.Tests.TestFixtureBase .EscapeJson(String) |
JsonConverter() | 0 field | Newtonsoft.Json.Tests.DemoTests .JsonConverter() |
GenerateSchema() | 0 field | Newtonsoft.Json.Tests.DemoTests .GenerateSchema() |
SerializationGuide() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializationGuide() |
SerializationBasics2() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializationBasics2() |
DeserializationBasics1() | 0 field | Newtonsoft.Json.Tests.DemoTests .DeserializationBasics1() |
DeserializationBasics2() | 0 field | Newtonsoft.Json.Tests.DemoTests .DeserializationBasics2() |
SerializeReferencesByValue() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializeReferencesByValue() |
SerializeReferencesWithMetadata() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializeReferencesWithMetadata() |
RoundtripTypesAndReferences() | 0 field | Newtonsoft.Json.Tests.DemoTests .RoundtripTypesAndReferences() |
SerializeAttributes() | 0 field | Newtonsoft.Json.Tests.DemoTests .SerializeAttributes() |
JsonSerializationException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonSerializationException() |
JsonWriterException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonWriterException() |
JsonReaderException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonReaderException() |
JsonSchemaException() | 0 field | Newtonsoft.Json.Tests.ExceptionTests .JsonSchemaException() |
IsReferenceTest() | 0 field | Newtonsoft.Json.Tests .JsonArrayAttributeTests.IsReferenceTest () |
NullValueHandlingTest() | 0 field | Newtonsoft.Json.Tests .JsonArrayAttributeTests .NullValueHandlingTest() |
DefaultValueHandlingTest() | 0 field | Newtonsoft.Json.Tests .JsonArrayAttributeTests .DefaultValueHandlingTest() |
DefaultSettings() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings() |
DefaultSettings_Example() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Example() |
DefaultSettings_Override() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override() |
DefaultSettings_Override_JsonConverterOr der() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override_JsonConverterO rder() |
DeserializeObject_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_EmptyString() |
DeserializeObject_Integer() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer() |
DeserializeObject_Integer_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer_EmptyString() |
DeserializeObject_Decimal_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Decimal_EmptyString() |
DeserializeObject_DateTime_EmptyString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_DateTime_EmptyString( ) |
EscapeJavaScriptString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString() |
EscapeJavaScriptString_UnicodeLinefeeds( ) | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString_UnicodeLinefeeds () |
ToStringInvalid() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .ToStringInvalid() |
GuidToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .GuidToString() |
EnumToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .EnumToString() |
ObjectToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .ObjectToString() |
TestInvalidStrings() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .TestInvalidStrings() |
DeserializeValueObjects() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeValueObjects() |
FloatToString() | 0 field | Newtonsoft.Json.Tests.JsonConvertTest .FloatToString() |
Statistics
Stat | staticFieldsUsed |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Constructor should not call a virtual methods |
// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.
warnif count > 0
from t in Application.Types where
t.IsClass &&
!t.IsGeneratedByCompiler &&
!t.IsSealed
from ctor in t.Constructors
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
where mCalled.IsVirtual &&
(mCalled.ParentType == t ||
t.DeriveFrom(mCalled.ParentType))
select mCalled
where virtualMethodsCalled.Count() > 0
select new { ctor ,
virtualMethodsCalled,
// If there is no derived type, it might be
// an opportunity to mark t as sealed.
t.DerivedTypes }View Code Query or Rule Body
11 methods matched
methods | virtualMethodsCalled | DerivedTypes | Full Name |
---|---|---|---|
.ctor(JContainer) | 1 method | 4 types | Newtonsoft.Json.Linq.JContainer..ctor (JContainer) |
.ctor(Object) | 1 method | 0 type | Newtonsoft.Json.Linq.JArray..ctor(Object ) |
.ctor(String,Object) | 1 method | 0 type | Newtonsoft.Json.Linq.JConstructor..ctor (String,Object) |
.ctor(Object) | 1 method | 0 type | Newtonsoft.Json.Linq.JObject..ctor (Object) |
.ctor(JValue) | 1 method | 1 type | Newtonsoft.Json.Linq.JValue..ctor(JValue ) |
.ctor(IEnumerable<KeyValuePair<String ,String>>) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryWithNoDefa ultConstructor..ctor(IEnumerable <KeyValuePair<String,String>>) |
.ctor (JsonSerializerTest+ModelStateDictionary <T>) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+ModelStateDictionary <T>..ctor (JsonSerializerTest+ModelStateDictionary <T>) |
.ctor(Decimal) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .DecimalTest..ctor(Decimal) |
.ctor(IEnumerable<T>) | 1 method | 0 type | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorWithIEnumerableCtorList<T>. .ctor(IEnumerable<T>) |
.ctor() | 2 methods | 0 type | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet..ctor() |
.ctor() | 2 methods | 0 type | Newtonsoft.Json.Tests.TestObjects .CustomerDataSet+CustomersDataTable. .ctor() |
Statistics
Stat | virtualMethodsCalled | DerivedTypes |
---|---|---|
Sum: | 0 | 0 |
Average: | 0 | 0 |
Minimum: | 0 | 0 |
Maximum: | 0 | 0 |
Standard deviation: | 0 | 0 |
Variance: | 0 | 0 |
![]() | Avoid the Singleton pattern |
warnif count > 0
from t in Application.Types
where !t.IsStatic && !t.IsAbstract && (t.IsClass || t.IsStructure)
// All ctors of a singleton are private
where t.Constructors.Where(ctor => !ctor.IsPrivate).Count() == 0
// A singleton contains one static field of its parent type, to reference the unique instance
let staticFieldInstances = t.StaticFields.WithFieldType(t)
where staticFieldInstances.Count() == 1
select new { t, staticFieldInstance = staticFieldInstances.First() }
// The Singleton pattern consists in syntactically enforcing that a class
// has just one unique instance.
// At first glance, this pattern looks appealing and it is widely used.
// However, we discourage you from using singleton classes because experience
// shows that singletons often result in less testable and less maintainable code.
// More details available in these discussions:
// http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members/
// http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/
View Code Query or Rule Body
No types matched
![]() | Rule warning: Don't assign static fields from instance methods |
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where
f.IsStatic &&
!f.IsLiteral &&
!f.IsInitOnly &&
!f.IsGeneratedByCompiler &&
// Contract API define such a insideContractEvaluation static field
f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }View Code Query or Rule Body
3 fields matched
fields | assignedBy | Full Name |
---|---|---|
_sharedContractCache | 1 method | Newtonsoft.Json.Serialization .DefaultContractResolver ._sharedContractCache |
y | 2 methods | Newtonsoft.Json.Tests.Serialization .StaticTestClass.y |
StringField | 1 method | Newtonsoft.Json.Tests.Utilities .ExpressionReflectionDelegateFactoryTest s+StaticTestClass.StringField |
Statistics
Stat | assignedBy |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule warning: Avoid empty interfaces |
warnif count > 0 from t in JustMyCode.Types where
t.IsInterface &&
t.NbMethods == 0
select new { t, t.TypesThatImplementMe }
// Interfaces define members that provide a behavior
// or usage contract. The functionality described by
// the interface can be adopted by any type,
// regardless of where the type appears in the
// inheritance hierarchy. A type implements an
// interface by providing implementations for the
// interface's members. An empty interface does not
// define any members, and as such, does not define
// a contract that can be implemented.
// If your design includes empty interfaces that
// types are expected to implement, you are probably
// using an interface as a marker, or a way of
// identifying a group of types. If this identification
// will occur at runtime, the correct way to accomplish
// this is to use a custom attribute. Use the presence
// or absence of the attribute, or the attribute's
// properties, to identify the target types. If the
// identification must occurs at compile time, then using
// an empty interface is acceptable.View Code Query or Rule Body
2 types matched
types | TypesThatImplementMe | Full Name |
---|---|---|
IErrorPerson2 | 0 type | Newtonsoft.Json.Tests.Serialization .IErrorPerson2 |
ISomeBase | 2 types | Newtonsoft.Json.Tests.Serialization .ISomeBase |
Statistics
Stat | TypesThatImplementMe |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Avoid types initialization cycles |
warnif count > 0
// The class constructor (also called static constructor, and named cctor in IL code)
// of a type, if any, is executed by the CLR at runtime, the first time the type is used.
// A cctor doesn't need to be explicitely declared in C# or VB.NET, to exist in compiled IL code.
// Having a static field inline initialization is enought to have
// the cctor implicitely declared in the parent class or structure.
//
// If the cctor of a type t1 is using the type t2 and if the cctor of t2 is using t1,
// some type initialization unexpected and hard-to-diagnose buggy behavior can occur.
// Such a cyclic chain of initialization is not necessarily limited to two types
// and can embrace N types in the general case.
// More information on types initialization cycles can be found here:
// http://msmvps.com/blogs/jon_skeet/archive/2012/04/07/1808561.aspx
// The present code rule enumerates types initialization cycles.
// Some false positives can appear if some lambda expressions are defined
// in cctors or in methods called by cctors. In such situation, this rule
// considers these lambda expressions as executed at type initialization time,
// while it is not necessarily the case.
// Types initialization cycle can only happen between types of an assembly.
from assembly in Application.Assemblies
let cctorSuspects = assembly.ChildMethods.Where(
m => m.IsClassConstructor &&
// Optimization: types involved in a type cycle necessarily don't have type level.
m.ParentType.Level == null)
where cctorSuspects.Count() > 1
let typesSuspects = cctorSuspects.ParentTypes().ToHashSet()
//
// dicoTmp associates to each type suspect T, a set of types from typesSuspects
// that contains at least a method or a field used directly or indirectly by the cctor of T.
//
let dicoTmp = cctorSuspects.ToDictionary(
cctor => cctor.ParentType,
cctor => ((IMember)cctor).ToEnumerable().FillIterative(
members => from m in members
from mUsed in (m is IMethod) ? (m as IMethod).MembersUsed : new IMember[0]
where mUsed.ParentAssembly == assembly
select mUsed)
.DefinitionDomain
.Select(m => m.ParentType) // Don't need .Distinct() here, because of ToHashSet() below.
.Except(cctor.ParentType)
.Intersect(typesSuspects)
.ToHashSet()
)
//
// dico associates to each type suspect T, the set of types initialized (directly or indirectly)
// by the initialization of T. This second step is needed, because if a cctor of a type T1
// calls a member of a type T2, not only the cctor of T1 triggers the initialization of T2,
// but also it triggers the initialization of all types that are initialized by T2 initialization.
//
let dico = typesSuspects.Where(t => dicoTmp[t].Count() > 0).ToDictionary(
typeSuspect => typeSuspect,
typeSuspect => typeSuspect.ToEnumerable().FillIterative(
types => from t in types
from tUsed in dicoTmp[t]
select tUsed)
.DefinitionDomain
.Except(typeSuspect)
.ToHashSet()
)
//
// Now that dico is prepared, detect the cctor cycles
//
from t in dico.Keys
// Thanks to the work done to build dico, it is now pretty easy
// to spot types involved in an initialization cyle with t!
let usersAndUseds = from tTmp in dico[t]
where dico.ContainsKey(tTmp) && dico[tTmp].Contains(t)
select tTmp
where usersAndUseds.Count() > 0
// Here we've found type(s) both using and used by the suspect type.
// A cycle involving the type t is found!
let typeInitCycle = usersAndUseds.Append(t)
// Compute methodsCalled and fieldsUsed, useful to explore
// how a cctor involved in a type initialization cycle, triggers other type initialization.
let methodsCalledDepth = assembly.ChildMethods.DepthOfIsUsedBy(t.ClassConstructor)
let fieldsUsedDepth = assembly.ChildFields.DepthOfIsUsedBy(t.ClassConstructor)
let methodsCalled = methodsCalledDepth.DefinitionDomain.OrderBy(m => methodsCalledDepth[m]).ToArray()
let fieldsUsed = fieldsUsedDepth.DefinitionDomain.OrderBy(f => fieldsUsedDepth[f]).ToArray()
// Use the tick box to: Group cctors methods By parent types
select new { t.ClassConstructor,
cctorsCycle= typeInitCycle.Select(tTmp => tTmp.ClassConstructor),
// methodsCalled and fieldsUsed are members used directly and indirectly by the cctor.
// Export these members to the dependency graph (right click the cell Export/Append ... to the Graph)
// and see how the cctor trigger the initialization of other types
methodsCalled,
fieldsUsed
}View Code Query or Rule Body
No methods matched
API Breaking Changes
|
![]() | API Breaking Changes: Types |
// This rule warns if a publicly visible type is
// not publicly visible anymore or if it has been removed.
// Such type can break the code of your clients.
warnif count > 0 from t in codeBase.OlderVersion().Application.Types
where t.IsPubliclyVisible &&
// The type has been removed and its parent assembly hasn't been removed ...
( (t.WasRemoved() && !t.ParentAssembly.WasRemoved()) ||
// ... or the type is not publicly visible anymore
!t.WasRemoved() && !t.NewerVersion().IsPubliclyVisible)
select new { t,
NewVisibility = (t.WasRemoved() ? " " : t.NewerVersion().Visibility.ToString()) }
View Code Query or Rule Body
No types matched
![]() | API Breaking Changes: Methods |
// This rule warns if a publicly visible method is
// not publicly visible anymore or if it has been removed.
// Such method can break the code of your clients.
warnif count > 0 from m in codeBase.OlderVersion().Application.Methods
where m.IsPubliclyVisible &&
// The method has been removed and its parent type hasn't been removed ...
( (m.WasRemoved() && !m.ParentType.WasRemoved()) ||
// ... or the method is not publicly visible anymore
!m.WasRemoved() && !m.NewerVersion().IsPubliclyVisible)
select new { m,
NewVisibility = (m.WasRemoved() ? " " : m.NewerVersion().Visibility.ToString()) }View Code Query or Rule Body
No methods matched
![]() | API Breaking Changes: Fields |
// This rule warns if a publicly visible field is
// not publicly visible anymore or if it has been removed.
// Such field can break the code of your clients.
warnif count > 0 from f in codeBase.OlderVersion().Application.Fields
where f.IsPubliclyVisible &&
// The field has been removed and its parent type hasn't been removed ...
( (f.WasRemoved() && !f.ParentType.WasRemoved()) ||
// ... or the field is not publicly visible anymore
!f.WasRemoved() && !f.NewerVersion().IsPubliclyVisible)
select new { f,
NewVisibility = (f.WasRemoved() ? " " : f.NewerVersion().Visibility.ToString()) }View Code Query or Rule Body
No fields matched
![]() | API Breaking Changes: Interfaces and Abstract Classes |
// This rule warns if a publicly visible interface or abstract class
// has been changed and contains new abstract methods or
// if some abstract methods have been removed.
// This can break the code of clients
// that implement such interface or derive from such abstract class.
warnif count > 0 from tNewer in Application.Types where
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) &&
tNewer.IsPubliclyVisible &&
tNewer.IsPresentInBothBuilds()
let tOlder = tNewer.OlderVersion() where tOlder.IsPubliclyVisible
let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())
where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { tNewer, methodsAdded, methodsRemoved }View Code Query or Rule Body
No types matched
![]() | Broken serializable types |
// Find breaking changes in types marked with SerializableAttribute.
warnif count > 0
from t in Application.Types where
// Collect types tagged with SerializableAttribute
t.HasAttribute("System.SerializableAttribute".AllowNoMatch()) &&
!t.IsDelegate &&
t.IsPresentInBothBuilds() &&
t.HasAttribute(t)
// Find newer and older versions of NonSerializedAttribute
let newNonSerializedAttribute = ThirdParty.Types.WithFullName("System.NonSerializedAttribute").SingleOrDefault()
let oldNonSerializedAttribute = newNonSerializedAttribute == null ? null : newNonSerializedAttribute.OlderVersion()
// Find added or removed fields not marked with NonSerializedAttribute
let addedInstanceField = from f in t.InstanceFields where
f.WasAdded() &&
(newNonSerializedAttribute == null || !f.HasAttribute(newNonSerializedAttribute))
select f
let removedInstanceField = from f in t.OlderVersion().InstanceFields where
f.WasRemoved() &&
(oldNonSerializedAttribute == null || !f.HasAttribute(oldNonSerializedAttribute))
select f
where addedInstanceField.Count() > 0 || removedInstanceField.Count() > 0
select new { t, addedInstanceField, removedInstanceField }
// From http://msdn.microsoft.com/library/system.serializableattribute.aspx :
// All the public and private fields in a type that are marked by the
// SerializableAttribute are serialized by default, unless the type
// implements the ISerializable interface to override the serialization process.
// The default serialization process excludes fields that are marked
// with the NonSerializedAttribute attribute.View Code Query or Rule Body
No types matched
![]() | Avoid transforming immutable types into mutable types |
// Immutability is a strong property on a type.
// Breaking immutability can result in serious problem for an algorithm consummer
// that has been written taking account of the type immutability.
// To visualize changes in code, right-click a matched type and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
warnif count > 0
from t in Application.Types where
t.IsPresentInBothBuilds() &&
!t.IsStatic &&
!t.IsImmutable &&
t.OlderVersion().IsImmutable
let mutableFields = from f in t.InstanceFields where !f.IsImmutable select f
select new { t, mutableFields }
View Code Query or Rule Body
No types matched
![]() | Avoid changing enumerations Flags status |
// Being tagged with the Flags attribute is a strong property for an enumeration.
// Changing the Flags status of an enumeration has significant impact for its client.
warnif count > 0
let oldFlags = codeBase.OlderVersion().ThirdParty.Types.WithFullName("System.FlagsAttribute").SingleOrDefault()
let newFlags = ThirdParty.Types.WithFullName("System.FlagsAttribute").SingleOrDefault()
where oldFlags != null && newFlags != null
from t in Application.Types where
t.IsEnumeration &&
t.IsPresentInBothBuilds()
let isFlags = t.HasAttribute(newFlags)
let wasFlags = t.OlderVersion().HasAttribute(oldFlags)
where isFlags != wasFlags
select new { t, isFlags, wasFlags }
View Code Query or Rule Body
No types matched
![]() | API: New publicly visible types |
// List types that are new in the public surface of your assemblies
from t in Application.Types
where t.IsPubliclyVisible &&
// The type has been removed and its parent assembly hasn't been removed ...
( (t.WasAdded() && !t.ParentAssembly.WasAdded()) ||
// ... or the type existed but was not publicly visible
!t.WasAdded() && !t.OlderVersion().IsPubliclyVisible)
select new { t,
OldVisibility = (t.WasAdded() ? " " : t.OlderVersion().Visibility.ToString()) }View Code Query or Rule Body
No types matched
![]() | API: New publicly visible methods |
// List methods that are new in the public surface of your assemblies
from m in Application.Methods
where m.IsPubliclyVisible &&
// The method has been removed and its parent assembly hasn'm been removed ...
( (m.WasAdded() && !m.ParentType.WasAdded()) ||
// ... or the t existed but was not publicly visible
!m.WasAdded() && !m.OlderVersion().IsPubliclyVisible)
select new { m,
OldVisibility = (m.WasAdded() ? " " : m.OlderVersion().Visibility.ToString()) }View Code Query or Rule Body
No methods matched
![]() | API: New publicly visible fields |
// List fields that are new in the public surface of your assemblies
from f in Application.Fields
where f.IsPubliclyVisible &&
// The method has been removed and its parent assembly hasn'f been removed ...
( (f.WasAdded() && !f.ParentType.WasAdded()) ||
// ... or the t existed but was not publicly visible
!f.WasAdded() && !f.OlderVersion().IsPubliclyVisible)
select new { f,
OldVisibility = (f.WasAdded() ? " " : f.OlderVersion().Visibility.ToString()) }View Code Query or Rule Body
No fields matched
Code Diff Summary
|
![]() | New assemblies |
from a in Application.Assemblies where a.WasAdded()
select new { a, a.NbLinesOfCode }
View Code Query or Rule Body
No assemblies matched
![]() | Assemblies removed |
from a in codeBase.OlderVersion().Application.Assemblies where a.WasRemoved()
select new { a, a.NbLinesOfCode }View Code Query or Rule Body
No assemblies matched
![]() | Assemblies where code was changed |
from a in Application.Assemblies where a.CodeWasChanged()
select new { a, a.NbLinesOfCode,
oldNbLinesOfCode = a.OlderVersion().NbLinesOfCode.GetValueOrDefault() ,
delta = (int) a.NbLinesOfCode.GetValueOrDefault() - a.OlderVersion().NbLinesOfCode.GetValueOrDefault() }View Code Query or Rule Body
No assemblies matched
![]() | New namespaces |
from n in Application.Namespaces where
!n.ParentAssembly.WasAdded() &&
n.WasAdded()
select new { n, n.NbLinesOfCode }
View Code Query or Rule Body
No namespaces matched
![]() | Namespaces removed |
from n in codeBase.OlderVersion().Application.Namespaces where
!n.ParentAssembly.WasRemoved() &&
n.WasRemoved()
select new { n, n.NbLinesOfCode }
View Code Query or Rule Body
No namespaces matched
![]() | Namespaces where code was changed |
from n in Application.Namespaces where n.CodeWasChanged()
select new { n, n.NbLinesOfCode,
oldNbLinesOfCode = n.OlderVersion().NbLinesOfCode.GetValueOrDefault() ,
delta = (int) n.NbLinesOfCode.GetValueOrDefault() - n.OlderVersion().NbLinesOfCode.GetValueOrDefault() }View Code Query or Rule Body
No namespaces matched
![]() | New types |
from t in Application.Types where
!t.ParentNamespace.WasAdded() &&
t.WasAdded()
select new { t, t.NbLinesOfCode }
View Code Query or Rule Body
No types matched
![]() | Types removed |
from t in codeBase.OlderVersion().Application.Types where
!t.ParentNamespace.WasRemoved() &&
t.WasRemoved()
select new { t, t.NbLinesOfCode }
View Code Query or Rule Body
No types matched
![]() | Types where code was changed |
// To visualize changes in code, right-click a matched type and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from t in Application.Types where t.CodeWasChanged()
//select new { t, t.NbLinesOfCode }
select new { t, t.NbLinesOfCode,
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
delta = (int?) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }
/*from t in Application.Types where t.CodeWasChanged() && t.IsPresentInBothBuild
select new { t, t.NbLinesOfCode,
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
delta = (int) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }*/View Code Query or Rule Body
No types matched
![]() | Heuristic to find types moved from one namespace or assembly to another |
let typesRemoved = codeBase.OlderVersion().Types.Where(t => t.WasRemoved())
let typesAdded = Types.Where(t => t.WasAdded())
from tMoved in typesAdded.Join(
typesRemoved,
t => t.Name,
t => t.Name,
(tNewer, tOlder) => new { tNewer,
OlderParentNamespace = tOlder.ParentNamespace,
OlderParentAssembly = tOlder.ParentAssembly } )
select tMovedView Code Query or Rule Body
No types matched
![]() | Types directly using one or several types changed |
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()
from t in JustMyCode.Types.UsingAny(typesChanged) where
!t.CodeWasChanged() &&
!t.WasAdded()
let typesChangedUsed = t.TypesUsed.Intersect(typesChanged)
select new { t, typesChangedUsed }View Code Query or Rule Body
No types matched
![]() | Types indirectly using one or several types changed |
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on types using
// directly or indirectly any type where code was changed.
let depth = JustMyCode.Types.DepthOfIsUsingAny(typesChanged)
from t in depth.DefinitionDomain where
!t.CodeWasChanged() &&
!t.WasAdded()
let typesChangedDirectlyUsed = t.TypesUsed.Intersect(typesChanged)
let depthOfUsingTypesChanged = depth[t]
orderby depthOfUsingTypesChanged
select new { t, depthOfUsingTypesChanged, typesChangedDirectlyUsed }View Code Query or Rule Body
No types matched
![]() | New methods |
from m in Application.Methods where
!m.ParentType.WasAdded() &&
m.WasAdded()
select new { m, m.NbLinesOfCode }
View Code Query or Rule Body
No methods matched
![]() | Methods removed |
from m in codeBase.OlderVersion().Application.Methods where
!m.ParentType.WasRemoved() &&
m.WasRemoved()
select new { m, m.NbLinesOfCode }
View Code Query or Rule Body
No methods matched
![]() | Methods where code was changed |
// To visualize changes in code, right-click a matched method and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from m in Application.Methods where m.CodeWasChanged()
select new { m, m.NbLinesOfCode,
oldNbLinesOfCode = m.OlderVersion().NbLinesOfCode ,
delta = (int?) m.NbLinesOfCode - m.OlderVersion().NbLinesOfCode }View Code Query or Rule Body
No methods matched
![]() | Methods directly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
from m in JustMyCode.Methods.UsingAny(methodsChanged ) where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedCalled = m.MethodsCalled.Intersect(methodsChanged)
select new { m, methodsChangedCalled }View Code Query or Rule Body
No methods matched
![]() | Methods indirectly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on methods using
// directly or indirectly any method where code was changed.
let depth = JustMyCode.Methods.DepthOfIsUsingAny(methodsChanged)
from m in depth.DefinitionDomain where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedDirectlyUsed = m.MethodsCalled.Intersect(methodsChanged)
let depthOfUsingMethodsChanged = depth[m]
orderby depthOfUsingMethodsChanged
select new { m, depthOfUsingMethodsChanged, methodsChangedDirectlyUsed }View Code Query or Rule Body
No methods matched
![]() | New fields |
from f in Application.Fields where
!f.ParentType.WasAdded() &&
f.WasAdded()
select new { f }
View Code Query or Rule Body
No fields matched
![]() | Fields removed |
from f in codeBase.OlderVersion().Application.Fields where
!f.ParentType.WasRemoved() &&
f.WasRemoved()
select new { f }
View Code Query or Rule Body
No fields matched
![]() | Third party types that were not used and that are now used |
from t in ThirdParty.Types where t.IsUsedRecently()
select new { t, t.Methods, t.Fields, t.TypesUsingMe }
View Code Query or Rule Body
No types matched
![]() | Third party types that were used and that are not used anymore |
from t in codeBase.OlderVersion().Types where t.IsNotUsedAnymore()
select new { t, t.Methods, t.Fields, TypesThatUsedMe = t.TypesUsingMe }
View Code Query or Rule Body
No types matched
![]() | Third party methods that were not used and that are now used |
from m in ThirdParty.Methods where
m.IsUsedRecently() &&
!m.ParentType.IsUsedRecently()
select new { m, m.MethodsCallingMe }View Code Query or Rule Body
No methods matched
![]() | Third party methods that were used and that are not used anymore |
from m in codeBase.OlderVersion().Methods where
m.IsNotUsedAnymore() &&
!m.ParentType.IsNotUsedAnymore()
select new { m, MethodsThatCalledMe = m.MethodsCallingMe}View Code Query or Rule Body
No methods matched
![]() | Third party fields that were not used and that are now used |
from f in ThirdParty.Fields where
f.IsUsedRecently() &&
!f.ParentType.IsUsedRecently()
select new { f, f.MethodsUsingMe }View Code Query or Rule Body
No fields matched
![]() | Third party fields that were used and that are not used anymore |
from f in codeBase.OlderVersion().Fields where
f.IsNotUsedAnymore() &&
!f.ParentType.IsNotUsedAnymore()
select new { f, MethodsThatUsedMe = f.MethodsUsingMe }View Code Query or Rule Body
No fields matched
Test and Code Coverage
|
![]() | C.R.A.P method code metric |
// Change Risk Analyzer and Predictor (i.e. CRAP) code metric
// This code metric helps in pinpointing overly complex and untested code.
// Reference: http://www.artima.com/weblogs/viewpost.jsp?thread=215899
// Formula: CRAP(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m)
warnif count > 0
from m in JustMyCode.Methods
// Don't match too short methods
where m.NbLinesOfCode > 10
let CC = m.CyclomaticComplexity
let uncov = (100 - m.PercentageCoverage) / 100f
let CRAP = (CC * CC * uncov * uncov * uncov) + CC
where CRAP != null && CRAP > 30
orderby CRAP descending, m.NbLinesOfCode descending
select new { m, CRAP, CC, uncoveredPercentage = uncov*100, m.NbLinesOfCode }View Code Query or Rule Body
No methods matched
![]() | Complex methods partially covered by tests should be 100% covered |
warnif count > 0 from m in JustMyCode.Methods
where
// These metrics' definitions are available here:
// http://www.ndepend.com/Metrics.aspx#MetricsOnMethods
( m.NbLinesOfCode > 30 ||
m.ILCyclomaticComplexity > 50 ||
m.ILNestingDepth > 4 ||
m.NbVariables > 8) &&
// Take care only of complex methods
// already partially covered, but not completely covered.
m.PercentageCoverage > 0 &&
m.PercentageCoverage < 100
orderby m.NbLinesOfCodeNotCovered ascending,
m.NbLinesOfCode descending
select new { m, m.PercentageCoverage, m.NbLinesOfCode,
m.NbLinesOfCodeCovered, m.NbLinesOfCodeNotCovered,
m.ILCyclomaticComplexity, m.ILNestingDepth, m.NbVariables } View Code Query or Rule Body
No methods matched
![]() | Method changed poorly covered |
from m in Application.Methods where
m.PercentageCoverage < 30 &&
m.CodeWasChanged()
orderby m.NbLinesOfCode descending,
m.NbLinesOfCodeNotCovered ,
m.PercentageCoverage
select new { m, m.PercentageCoverage, m.NbLinesOfCode,
m.NbLinesOfCodeNotCovered }
View Code Query or Rule Body
No methods matched
![]() | Method added poorly covered |
from m in Application.Methods where
m.NbLinesOfCode > 0 &&
m.PercentageCoverage < 30 &&
m.WasAdded()
orderby m.NbLinesOfCode descending,
m.NbLinesOfCodeNotCovered ,
m.PercentageCoverage
select new { m, m.PercentageCoverage, m.NbLinesOfCode,
m.NbLinesOfCodeNotCovered }
View Code Query or Rule Body
No methods matched
![]() | Types 95% to 99% covered |
from t in Application.Types where
t.PercentageCoverage >= 95 &&
t.PercentageCoverage <= 99 &&
!t.IsGeneratedByCompiler
let methodsCulprit = t.Methods.Where(m => m.PercentageCoverage < 100)
orderby t.NbLinesOfCode descending ,
t.NbLinesOfCodeNotCovered ,
t.PercentageCoverage
select new { t, t.PercentageCoverage, t.NbLinesOfCode,
t.NbLinesOfCodeNotCovered, methodsCulprit }
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.
View Code Query or Rule Body
No types matched
![]() | Namespaces 95% to 99% covered |
from n in Application.Namespaces where
n.PercentageCoverage >= 95 &&
n.PercentageCoverage <= 99
let methodsCulprit = n.ChildMethods.Where(m => m.PercentageCoverage < 100)
orderby n.NbLinesOfCode descending ,
n.NbLinesOfCodeNotCovered ,
n.PercentageCoverage
select new { n, n.PercentageCoverage, n.NbLinesOfCode,
n.NbLinesOfCodeNotCovered, methodsCulprit }
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.View Code Query or Rule Body
No namespaces matched
![]() | Types tagged with FullCoveredAttribute should be 100% covered |
warnif count > 0
from t in Application.Types where
t.HasAttribute ("NDepend.Attributes.FullCoveredAttribute".AllowNoMatch()) &&
t.PercentageCoverage < 100
let notFullCoveredMethods = t.Methods.Where(
m => m.NbLinesOfCode> 0 &&
m.PercentageCoverage < 100 &&
!m.HasAttribute("NDepend.Attributes.UncoverableByTestAttribute".AllowNoMatch()))
orderby t.NbLinesOfCodeNotCovered descending
select new { t, t.PercentageCoverage, t.NbLinesOfCodeNotCovered, notFullCoveredMethods,
t.NbLinesOfCode, t.NbLinesOfCodeCovered }
// By using a FullCoveredAttribute, you can signify to developers
// that a class is, and must remain in the future, 100% covered by tests.
// If you don't want to link NDepend.API.dll,
// you can use your own attribute and adapt this rule.
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.
View Code Query or Rule Body
No types matched
![]() | Types 100% covered should be tagged with FullCoveredAttribute |
warnif count > 0 from t in JustMyCode.Types where
!t.HasAttribute ("NDepend.Attributes.FullCoveredAttribute".AllowNoMatch()) &&
t.PercentageCoverage == 100 &&
!t.IsGeneratedByCompiler
select new { t, t.NbLinesOfCode }
// By using a FullCoveredAttribute, you can signify to developers
// that a class is, and must remain in the future, 100% covered by tests.
// If you don't want to link NDepend.API.dll, you can use your own attribute and adapt this rule.
// Having types 100% covered by tests is a good idea because
// the small portion of code hard to cover, is also the
// portion of code that is the most likely to contain bugs.
View Code Query or Rule Body
No types matched
![]() | Types not covered at all |
from t in Application.Types where
t.PercentageCoverage == 0
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }
View Code Query or Rule Body
No types matched
![]() | Namespaces not covered at all |
from n in Application.Namespaces where
n.PercentageCoverage == 0
orderby n.NbLinesOfCode descending
select new { n, n.NbLinesOfCode}
View Code Query or Rule Body
No namespaces matched
![]() | Test Methods |
// We advise to not include test assemblies in code analyzed by NDepend.
// But if you wish the current query to run properly,
// you'll need to consider test assemblies in your list of application assemblies analyzed by NDepend..
let testAttr = ThirdParty.Types.WithNameIn("TestAttribute", "TestCaseAttribute")
let testMethods = Methods.TaggedWithAnyAttributes(testAttr)
from m in testMethods
select m
View Code Query or Rule Body
1,764 methods matched
methods | Full Name |
---|---|
JsonConverter() | Newtonsoft.Json.Tests.DemoTests .JsonConverter() |
GenerateSchema() | Newtonsoft.Json.Tests.DemoTests .GenerateSchema() |
SerializationGuide() | Newtonsoft.Json.Tests.DemoTests .SerializationGuide() |
SerializationBasics() | Newtonsoft.Json.Tests.DemoTests .SerializationBasics() |
SerializationBasics2() | Newtonsoft.Json.Tests.DemoTests .SerializationBasics2() |
DeserializationBasics1() | Newtonsoft.Json.Tests.DemoTests .DeserializationBasics1() |
DeserializationBasics2() | Newtonsoft.Json.Tests.DemoTests .DeserializationBasics2() |
SerializeReferencesByValue() | Newtonsoft.Json.Tests.DemoTests .SerializeReferencesByValue() |
SerializeReferencesWithMetadata() | Newtonsoft.Json.Tests.DemoTests .SerializeReferencesWithMetadata() |
RoundtripTypesAndReferences() | Newtonsoft.Json.Tests.DemoTests .RoundtripTypesAndReferences() |
SerializeAttributes() | Newtonsoft.Json.Tests.DemoTests .SerializeAttributes() |
JsonSerializationException() | Newtonsoft.Json.Tests.ExceptionTests .JsonSerializationException() |
JsonWriterException() | Newtonsoft.Json.Tests.ExceptionTests .JsonWriterException() |
JsonReaderException() | Newtonsoft.Json.Tests.ExceptionTests .JsonReaderException() |
JsonSchemaException() | Newtonsoft.Json.Tests.ExceptionTests .JsonSchemaException() |
IsReferenceTest() | Newtonsoft.Json.Tests .JsonArrayAttributeTests.IsReferenceTest () |
NullValueHandlingTest() | Newtonsoft.Json.Tests .JsonArrayAttributeTests .NullValueHandlingTest() |
DefaultValueHandlingTest() | Newtonsoft.Json.Tests .JsonArrayAttributeTests .DefaultValueHandlingTest() |
DefaultSettings() | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings() |
DefaultSettings_Example() | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Example() |
DefaultSettings_Override() | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override() |
DefaultSettings_Override_JsonConverterOr der() | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Override_JsonConverterO rder() |
DefaultSettings_Create() | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_Create() |
DefaultSettings_CreateWithSettings() | Newtonsoft.Json.Tests.JsonConvertTest .DefaultSettings_CreateWithSettings() |
DeserializeObject_EmptyString() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_EmptyString() |
DeserializeObject_Integer() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer() |
DeserializeObject_Integer_EmptyString() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Integer_EmptyString() |
DeserializeObject_Decimal_EmptyString() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_Decimal_EmptyString() |
DeserializeObject_DateTime_EmptyString() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject_DateTime_EmptyString( ) |
EscapeJavaScriptString() | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString() |
EscapeJavaScriptString_UnicodeLinefeeds( ) | Newtonsoft.Json.Tests.JsonConvertTest .EscapeJavaScriptString_UnicodeLinefeeds () |
ToStringInvalid() | Newtonsoft.Json.Tests.JsonConvertTest .ToStringInvalid() |
GuidToString() | Newtonsoft.Json.Tests.JsonConvertTest .GuidToString() |
EnumToString() | Newtonsoft.Json.Tests.JsonConvertTest .EnumToString() |
ObjectToString() | Newtonsoft.Json.Tests.JsonConvertTest .ObjectToString() |
TestInvalidStrings() | Newtonsoft.Json.Tests.JsonConvertTest .TestInvalidStrings() |
DeserializeValueObjects() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeValueObjects() |
FloatToString() | Newtonsoft.Json.Tests.JsonConvertTest .FloatToString() |
DecimalToString() | Newtonsoft.Json.Tests.JsonConvertTest .DecimalToString() |
StringEscaping() | Newtonsoft.Json.Tests.JsonConvertTest .StringEscaping() |
WriteDateTime() | Newtonsoft.Json.Tests.JsonConvertTest .WriteDateTime() |
Async() | Newtonsoft.Json.Tests.JsonConvertTest .Async() |
SerializeObjectDateTimeZoneHandling() | Newtonsoft.Json.Tests.JsonConvertTest .SerializeObjectDateTimeZoneHandling() |
DeserializeObject() | Newtonsoft.Json.Tests.JsonConvertTest .DeserializeObject() |
TestJsonDateTimeOffsetRoundtrip() | Newtonsoft.Json.Tests.JsonConvertTest .TestJsonDateTimeOffsetRoundtrip() |
IntegerLengthOverflows() | Newtonsoft.Json.Tests.JsonConvertTest .IntegerLengthOverflows() |
ReadMultilineString() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadMultilineString() |
ReadBigInteger() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBigInteger() |
ReadIntegerWithError() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadIntegerWithError() |
ReadIntegerWithErrorInArray() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadIntegerWithErrorInArray() |
ReadBytesWithError() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBytesWithError() |
ReadBadMSDateAsString() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBadMSDateAsString() |
ReadInvalidNonBase10Number() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadInvalidNonBase10Number() |
ThrowErrorWhenParsingUnquoteStringThatSt artsWithNE() | Newtonsoft.Json.Tests.JsonTextReaderTest .ThrowErrorWhenParsingUnquoteStringThatS tartsWithNE() |
FloatParseHandling() | Newtonsoft.Json.Tests.JsonTextReaderTest .FloatParseHandling() |
FloatParseHandling_NaN() | Newtonsoft.Json.Tests.JsonTextReaderTest .FloatParseHandling_NaN() |
UnescapeDoubleQuotes() | Newtonsoft.Json.Tests.JsonTextReaderTest .UnescapeDoubleQuotes() |
SurrogatePairValid() | Newtonsoft.Json.Tests.JsonTextReaderTest .SurrogatePairValid() |
SurrogatePairReplacement() | Newtonsoft.Json.Tests.JsonTextReaderTest .SurrogatePairReplacement() |
CloseInput() | Newtonsoft.Json.Tests.JsonTextReaderTest .CloseInput() |
YahooFinance() | Newtonsoft.Json.Tests.JsonTextReaderTest .YahooFinance() |
ReadConstructor() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadConstructor() |
ParseAdditionalContent_Comma() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseAdditionalContent_Comma() |
ParseAdditionalContent_Text() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseAdditionalContent_Text() |
ParseAdditionalContent_Whitespace() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseAdditionalContent_Whitespace() |
ParseAdditionalContent_WhitespaceThenTex t() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseAdditionalContent_WhitespaceThenTe xt() |
ReadingIndented() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadingIndented() |
Depth() | Newtonsoft.Json.Tests.JsonTextReaderTest .Depth() |
NullTextReader() | Newtonsoft.Json.Tests.JsonTextReaderTest .NullTextReader() |
UnexpectedEndOfString() | Newtonsoft.Json.Tests.JsonTextReaderTest .UnexpectedEndOfString() |
ReadLongString() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadLongString() |
ReadLongJsonArray() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadLongJsonArray() |
NullCharReading() | Newtonsoft.Json.Tests.JsonTextReaderTest .NullCharReading() |
AppendCharsWhileReadingNull() | Newtonsoft.Json.Tests.JsonTextReaderTest .AppendCharsWhileReadingNull() |
ReadInt32Overflow() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadInt32Overflow() |
ReadInt32Overflow_Negative() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadInt32Overflow_Negative() |
ReadInt64Overflow() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadInt64Overflow() |
ReadInt64Overflow_Negative() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadInt64Overflow_Negative() |
AppendCharsWhileReadingNewLine() | Newtonsoft.Json.Tests.JsonTextReaderTest .AppendCharsWhileReadingNewLine() |
ReadNullTerminatorStrings() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadNullTerminatorStrings() |
UnexpectedEndOfHex() | Newtonsoft.Json.Tests.JsonTextReaderTest .UnexpectedEndOfHex() |
UnexpectedEndOfControlCharacter() | Newtonsoft.Json.Tests.JsonTextReaderTest .UnexpectedEndOfControlCharacter() |
ReadBytesWithBadCharacter() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBytesWithBadCharacter() |
ReadBytesWithUnexpectedEnd() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBytesWithUnexpectedEnd() |
ReadBytesNoStartWithUnexpectedEnd() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBytesNoStartWithUnexpectedEnd() |
UnexpectedEndWhenParsingUnquotedProperty () | Newtonsoft.Json.Tests.JsonTextReaderTest .UnexpectedEndWhenParsingUnquotedPropert y() |
ReadNewLines() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadNewLines() |
ParsingQuotedPropertyWithControlCharacte rs() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParsingQuotedPropertyWithControlCharact ers() |
ReadBytesFollowingNumberInArray() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBytesFollowingNumberInArray() |
ReadBytesFollowingNumberInObject() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadBytesFollowingNumberInObject() |
ReadingEscapedStrings() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadingEscapedStrings() |
ReadNewlineLastCharacter() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadNewlineLastCharacter() |
ReadRandomJson() | Newtonsoft.Json.Tests.JsonTextReaderTest .ReadRandomJson() |
ParseIntegers() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseIntegers() |
ParseDecimals() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseDecimals() |
ParseDoubles() | Newtonsoft.Json.Tests.JsonTextReaderTest .ParseDoubles() |
WriteReadWrite() | Newtonsoft.Json.Tests.JsonTextReaderTest .WriteReadWrite() |
FloatingPointNonFiniteNumbers() | Newtonsoft.Json.Tests.JsonTextReaderTest .FloatingPointNonFiniteNumbers() |
LongStringTest() | Newtonsoft.Json.Tests.JsonTextReaderTest .LongStringTest() |
EscapedUnicodeText() | Newtonsoft.Json.Tests.JsonTextReaderTest .EscapedUnicodeText() |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Methods directly called by test Methods |
// Lists all methods directly called by tests methods.
// Overrides of virtual and absract methods, called through polymorphism, are not listed.
// Methods solely invoked through a delegate are not listed.
// Methods solely invoked through reflection are not listed.
// We advise to not include test assemblies in code analyzed by NDepend.
// But if you wish the current query to run properly,
// you'll need to consider test assemblies in your list of application assemblies analyzed by NDepend..
let testAttr = ThirdParty.Types.WithNameIn("TestAttribute", "TestCaseAttribute")
let testMethods = Methods.TaggedWithAnyAttributes(testAttr).ToHashSet()
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
//let testAssemblies = testMethods.ParentAssemblies().ToHashSet()
from m in Application.Methods.UsedByAny(testMethods)
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
//where !testAssemblies.Contains(m.ParentAssembly)
select new { m ,
calledByTests = m.MethodsCallingMe.Intersect(testMethods ),
// --- Uncomment this line if your project import some coverage data ---
// m.PercentageCoverage
}View Code Query or Rule Body
2,589 methods matched
methods | calledByTests | Full Name |
---|---|---|
set_CloseInput(Boolean) | 2 methods | Newtonsoft.Json.JsonReader .set_CloseInput(Boolean) |
set_SupportMultipleContent(Boolean) | 2 methods | Newtonsoft.Json.JsonReader .set_SupportMultipleContent(Boolean) |
get_QuoteChar() | 5 methods | Newtonsoft.Json.JsonReader.get_QuoteChar () |
set_QuoteChar(Char) | 1 method | Newtonsoft.Json.JsonReader.set_QuoteChar (Char) |
get_DateParseHandling() | 1 method | Newtonsoft.Json.JsonReader .get_DateParseHandling() |
set_DateParseHandling(DateParseHandling) | 5 methods | Newtonsoft.Json.JsonReader .set_DateParseHandling(DateParseHandling ) |
set_FloatParseHandling (FloatParseHandling) | 7 methods | Newtonsoft.Json.JsonReader .set_FloatParseHandling (FloatParseHandling) |
set_DateFormatString(String) | 3 methods | Newtonsoft.Json.JsonReader .set_DateFormatString(String) |
set_MaxDepth(Nullable<Int32>) | 5 methods | Newtonsoft.Json.JsonReader.set_MaxDepth (Nullable<Int32>) |
get_TokenType() | 149 methods | Newtonsoft.Json.JsonReader.get_TokenType () |
get_Value() | 98 methods | Newtonsoft.Json.JsonReader.get_Value() |
get_ValueType() | 49 methods | Newtonsoft.Json.JsonReader.get_ValueType () |
get_Depth() | 4 methods | Newtonsoft.Json.JsonReader.get_Depth() |
get_Path() | 2 methods | Newtonsoft.Json.JsonReader.get_Path() |
set_Culture(CultureInfo) | 4 methods | Newtonsoft.Json.JsonReader.set_Culture (CultureInfo) |
Read() | 176 methods | Newtonsoft.Json.JsonReader.Read() |
ReadAsInt32() | 7 methods | Newtonsoft.Json.JsonReader.ReadAsInt32() |
ReadAsString() | 3 methods | Newtonsoft.Json.JsonReader.ReadAsString( ) |
ReadAsBytes() | 13 methods | Newtonsoft.Json.JsonReader.ReadAsBytes() |
ReadAsDecimal() | 14 methods | Newtonsoft.Json.JsonReader.ReadAsDecimal () |
ReadAsDateTime() | 2 methods | Newtonsoft.Json.JsonReader .ReadAsDateTime() |
ReadAsDateTimeOffset() | 11 methods | Newtonsoft.Json.JsonReader .ReadAsDateTimeOffset() |
Close() | 3 methods | Newtonsoft.Json.JsonReader.Close() |
BuildStateArray() | 1 method | Newtonsoft.Json.JsonWriter .BuildStateArray() |
set_CloseOutput(Boolean) | 3 methods | Newtonsoft.Json.JsonWriter .set_CloseOutput(Boolean) |
get_WriteState() | 5 methods | Newtonsoft.Json.JsonWriter .get_WriteState() |
get_Path() | 3 methods | Newtonsoft.Json.JsonWriter.get_Path() |
get_Formatting() | 4 methods | Newtonsoft.Json.JsonWriter .get_Formatting() |
set_Formatting(Formatting) | 39 methods | Newtonsoft.Json.JsonWriter .set_Formatting(Formatting) |
set_DateFormatHandling (DateFormatHandling) | 1 method | Newtonsoft.Json.JsonWriter .set_DateFormatHandling (DateFormatHandling) |
set_DateTimeZoneHandling (DateTimeZoneHandling) | 3 methods | Newtonsoft.Json.JsonWriter .set_DateTimeZoneHandling (DateTimeZoneHandling) |
get_StringEscapeHandling() | 1 method | Newtonsoft.Json.JsonWriter .get_StringEscapeHandling() |
set_StringEscapeHandling (StringEscapeHandling) | 2 methods | Newtonsoft.Json.JsonWriter .set_StringEscapeHandling (StringEscapeHandling) |
set_FloatFormatHandling (FloatFormatHandling) | 8 methods | Newtonsoft.Json.JsonWriter .set_FloatFormatHandling (FloatFormatHandling) |
get_DateFormatString() | 1 method | Newtonsoft.Json.JsonWriter .get_DateFormatString() |
set_DateFormatString(String) | 2 methods | Newtonsoft.Json.JsonWriter .set_DateFormatString(String) |
get_Culture() | 1 method | Newtonsoft.Json.JsonWriter.get_Culture() |
set_Culture(CultureInfo) | 1 method | Newtonsoft.Json.JsonWriter.set_Culture (CultureInfo) |
Flush() | 18 methods | Newtonsoft.Json.JsonWriter.Flush() |
Close() | 5 methods | Newtonsoft.Json.JsonWriter.Close() |
WriteStartObject() | 32 methods | Newtonsoft.Json.JsonWriter .WriteStartObject() |
WriteEndObject() | 28 methods | Newtonsoft.Json.JsonWriter .WriteEndObject() |
WriteStartArray() | 41 methods | Newtonsoft.Json.JsonWriter .WriteStartArray() |
WriteEndArray() | 30 methods | Newtonsoft.Json.JsonWriter.WriteEndArray () |
WriteStartConstructor(String) | 3 methods | Newtonsoft.Json.JsonWriter .WriteStartConstructor(String) |
WriteEndConstructor() | 2 methods | Newtonsoft.Json.JsonWriter .WriteEndConstructor() |
WritePropertyName(String) | 31 methods | Newtonsoft.Json.JsonWriter .WritePropertyName(String) |
WriteEnd() | 13 methods | Newtonsoft.Json.JsonWriter.WriteEnd() |
WriteToken(JsonReader) | 2 methods | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader) |
WriteToken(JsonReader,Boolean) | 1 method | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Boolean) |
WriteNull() | 6 methods | Newtonsoft.Json.JsonWriter.WriteNull() |
WriteUndefined() | 3 methods | Newtonsoft.Json.JsonWriter .WriteUndefined() |
WriteRaw(String) | 5 methods | Newtonsoft.Json.JsonWriter.WriteRaw (String) |
WriteRawValue(String) | 3 methods | Newtonsoft.Json.JsonWriter.WriteRawValue (String) |
WriteValue(String) | 23 methods | Newtonsoft.Json.JsonWriter.WriteValue (String) |
WriteValue(Int32) | 9 methods | Newtonsoft.Json.JsonWriter.WriteValue (Int32) |
WriteValue(UInt32) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (UInt32) |
WriteValue(Int64) | 3 methods | Newtonsoft.Json.JsonWriter.WriteValue (Int64) |
WriteValue(UInt64) | 3 methods | Newtonsoft.Json.JsonWriter.WriteValue (UInt64) |
WriteValue(Single) | 8 methods | Newtonsoft.Json.JsonWriter.WriteValue (Single) |
WriteValue(Double) | 14 methods | Newtonsoft.Json.JsonWriter.WriteValue (Double) |
WriteValue(Boolean) | 6 methods | Newtonsoft.Json.JsonWriter.WriteValue (Boolean) |
WriteValue(Int16) | 1 method | Newtonsoft.Json.JsonWriter.WriteValue (Int16) |
WriteValue(UInt16) | 1 method | Newtonsoft.Json.JsonWriter.WriteValue (UInt16) |
WriteValue(Char) | 4 methods | Newtonsoft.Json.JsonWriter.WriteValue (Char) |
WriteValue(Byte) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Byte) |
WriteValue(SByte) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (SByte) |
WriteValue(Decimal) | 6 methods | Newtonsoft.Json.JsonWriter.WriteValue (Decimal) |
WriteValue(DateTime) | 11 methods | Newtonsoft.Json.JsonWriter.WriteValue (DateTime) |
WriteValue(DateTimeOffset) | 4 methods | Newtonsoft.Json.JsonWriter.WriteValue (DateTimeOffset) |
WriteValue(Guid) | 6 methods | Newtonsoft.Json.JsonWriter.WriteValue (Guid) |
WriteValue(TimeSpan) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (TimeSpan) |
WriteValue(Nullable<Int32>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int32>) |
WriteValue(Nullable<UInt32>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt32>) |
WriteValue(Nullable<Int64>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int64>) |
WriteValue(Nullable<UInt64>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt64>) |
WriteValue(Nullable<Single>) | 3 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Single>) |
WriteValue(Nullable<Double>) | 3 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Double>) |
WriteValue(Nullable<Boolean>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Boolean>) |
WriteValue(Nullable<Int16>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int16>) |
WriteValue(Nullable<UInt16>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt16>) |
WriteValue(Nullable<Char>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Char>) |
WriteValue(Nullable<Byte>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Byte>) |
WriteValue(Nullable<SByte>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<SByte>) |
WriteValue(Nullable<Decimal>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Decimal>) |
WriteValue(Nullable<DateTime>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTime>) |
WriteValue(Nullable<DateTimeOffset>) | 2 methods | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTimeOffset>) |
WriteValue(Byte[]) | 9 methods | Newtonsoft.Json.JsonWriter.WriteValue (Byte[]) |
WriteValue(Uri) | 3 methods | Newtonsoft.Json.JsonWriter.WriteValue (Uri) |
WriteValue(Object) | 8 methods | Newtonsoft.Json.JsonWriter.WriteValue (Object) |
WriteComment(String) | 5 methods | Newtonsoft.Json.JsonWriter.WriteComment (String) |
WriteWhitespace(String) | 2 methods | Newtonsoft.Json.JsonWriter .WriteWhitespace(String) |
HasLineInfo() | 4 methods | Newtonsoft.Json.IJsonLineInfo .HasLineInfo() |
get_LineNumber() | 4 methods | Newtonsoft.Json.IJsonLineInfo .get_LineNumber() |
get_LinePosition() | 4 methods | Newtonsoft.Json.IJsonLineInfo .get_LinePosition() |
set_DefaultSettings(Func <JsonSerializerSettings>) | 7 methods | Newtonsoft.Json.JsonConvert .set_DefaultSettings(Func <JsonSerializerSettings>) |
ToString(DateTime,DateFormatHandling ,DateTimeZoneHandling) | 1 method | Newtonsoft.Json.JsonConvert.ToString (DateTime,DateFormatHandling ,DateTimeZoneHandling) |
ToString(DateTimeOffset ,DateFormatHandling) | 1 method | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset,DateFormatHandling) |
ToString(Enum) | 1 method | Newtonsoft.Json.JsonConvert.ToString (Enum) |
ToString(Double) | 1 method | Newtonsoft.Json.JsonConvert.ToString (Double) |
Statistics
Stat | calledByTests |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Methods directly and indirectly called by test Methods |
// Lists all methods called directly or indirectly by tests methods.
// Overrides of virtual and absract methods, called through polymorphism, are not listed.
// Methods solely invoked through a delegate are not listed.
// Methods solely invoked through reflection are not listed.
// We advise to not include test assemblies in code analyzed by NDepend.
// But if you wish the current query to run properly,
// you'll need to consider test assemblies in your list of application assemblies analyzed by NDepend.
let testAttr = from t in ThirdParty.Types.WithNameIn("TestAttribute", "TestCaseAttribute") select t
let testMethods = Methods.TaggedWithAnyAttributes(testAttr)
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
// let testAssemblies = testMethods.ParentAssemblies().ToHashSet()
let depthOfCalledByTest = Application.Methods.DepthOfIsUsedByAny(testMethods)
from pair in depthOfCalledByTest
where pair.Value > 0
orderby pair.Value ascending
// --- Uncomment this line if your test methods are in dedicated test assemblies ---
//&& !testAssemblies.Contains(pair.CodeElement.ParentAssembly)
select new {
method = pair.CodeElement,
// (depthOfCalledByTests == 1) means that the method is directly called by tests
// (depthOfCalledByTests == 2) means that the method is directly called by a method directly called by tests
// ...
depthOfCalledByTests = pair.Value,
// --- Uncomment this line if your project import some coverage data ---
// m.PercentageCoverage
}View Code Query or Rule Body
3,808 methods matched
methods | depthOfCalledByTests | Full Name |
---|---|---|
set_CloseInput(Boolean) | 1 | Newtonsoft.Json.JsonReader .set_CloseInput(Boolean) |
set_SupportMultipleContent(Boolean) | 1 | Newtonsoft.Json.JsonReader .set_SupportMultipleContent(Boolean) |
get_QuoteChar() | 1 | Newtonsoft.Json.JsonReader.get_QuoteChar () |
set_QuoteChar(Char) | 1 | Newtonsoft.Json.JsonReader.set_QuoteChar (Char) |
get_DateParseHandling() | 1 | Newtonsoft.Json.JsonReader .get_DateParseHandling() |
set_DateParseHandling(DateParseHandling) | 1 | Newtonsoft.Json.JsonReader .set_DateParseHandling(DateParseHandling ) |
set_FloatParseHandling (FloatParseHandling) | 1 | Newtonsoft.Json.JsonReader .set_FloatParseHandling (FloatParseHandling) |
set_DateFormatString(String) | 1 | Newtonsoft.Json.JsonReader .set_DateFormatString(String) |
set_MaxDepth(Nullable<Int32>) | 1 | Newtonsoft.Json.JsonReader.set_MaxDepth (Nullable<Int32>) |
get_TokenType() | 1 | Newtonsoft.Json.JsonReader.get_TokenType () |
get_Value() | 1 | Newtonsoft.Json.JsonReader.get_Value() |
get_ValueType() | 1 | Newtonsoft.Json.JsonReader.get_ValueType () |
get_Depth() | 1 | Newtonsoft.Json.JsonReader.get_Depth() |
get_Path() | 1 | Newtonsoft.Json.JsonReader.get_Path() |
set_Culture(CultureInfo) | 1 | Newtonsoft.Json.JsonReader.set_Culture (CultureInfo) |
Read() | 1 | Newtonsoft.Json.JsonReader.Read() |
ReadAsInt32() | 1 | Newtonsoft.Json.JsonReader.ReadAsInt32() |
ReadAsString() | 1 | Newtonsoft.Json.JsonReader.ReadAsString( ) |
ReadAsBytes() | 1 | Newtonsoft.Json.JsonReader.ReadAsBytes() |
ReadAsDecimal() | 1 | Newtonsoft.Json.JsonReader.ReadAsDecimal () |
ReadAsDateTime() | 1 | Newtonsoft.Json.JsonReader .ReadAsDateTime() |
ReadAsDateTimeOffset() | 1 | Newtonsoft.Json.JsonReader .ReadAsDateTimeOffset() |
Close() | 1 | Newtonsoft.Json.JsonReader.Close() |
BuildStateArray() | 1 | Newtonsoft.Json.JsonWriter .BuildStateArray() |
set_CloseOutput(Boolean) | 1 | Newtonsoft.Json.JsonWriter .set_CloseOutput(Boolean) |
get_WriteState() | 1 | Newtonsoft.Json.JsonWriter .get_WriteState() |
get_Path() | 1 | Newtonsoft.Json.JsonWriter.get_Path() |
get_Formatting() | 1 | Newtonsoft.Json.JsonWriter .get_Formatting() |
set_Formatting(Formatting) | 1 | Newtonsoft.Json.JsonWriter .set_Formatting(Formatting) |
set_DateFormatHandling (DateFormatHandling) | 1 | Newtonsoft.Json.JsonWriter .set_DateFormatHandling (DateFormatHandling) |
set_DateTimeZoneHandling (DateTimeZoneHandling) | 1 | Newtonsoft.Json.JsonWriter .set_DateTimeZoneHandling (DateTimeZoneHandling) |
get_StringEscapeHandling() | 1 | Newtonsoft.Json.JsonWriter .get_StringEscapeHandling() |
set_StringEscapeHandling (StringEscapeHandling) | 1 | Newtonsoft.Json.JsonWriter .set_StringEscapeHandling (StringEscapeHandling) |
set_FloatFormatHandling (FloatFormatHandling) | 1 | Newtonsoft.Json.JsonWriter .set_FloatFormatHandling (FloatFormatHandling) |
get_DateFormatString() | 1 | Newtonsoft.Json.JsonWriter .get_DateFormatString() |
set_DateFormatString(String) | 1 | Newtonsoft.Json.JsonWriter .set_DateFormatString(String) |
get_Culture() | 1 | Newtonsoft.Json.JsonWriter.get_Culture() |
set_Culture(CultureInfo) | 1 | Newtonsoft.Json.JsonWriter.set_Culture (CultureInfo) |
Flush() | 1 | Newtonsoft.Json.JsonWriter.Flush() |
Close() | 1 | Newtonsoft.Json.JsonWriter.Close() |
WriteStartObject() | 1 | Newtonsoft.Json.JsonWriter .WriteStartObject() |
WriteEndObject() | 1 | Newtonsoft.Json.JsonWriter .WriteEndObject() |
WriteStartArray() | 1 | Newtonsoft.Json.JsonWriter .WriteStartArray() |
WriteEndArray() | 1 | Newtonsoft.Json.JsonWriter.WriteEndArray () |
WriteStartConstructor(String) | 1 | Newtonsoft.Json.JsonWriter .WriteStartConstructor(String) |
WriteEndConstructor() | 1 | Newtonsoft.Json.JsonWriter .WriteEndConstructor() |
WritePropertyName(String) | 1 | Newtonsoft.Json.JsonWriter .WritePropertyName(String) |
WriteEnd() | 1 | Newtonsoft.Json.JsonWriter.WriteEnd() |
WriteToken(JsonReader) | 1 | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader) |
WriteToken(JsonReader,Boolean) | 1 | Newtonsoft.Json.JsonWriter.WriteToken (JsonReader,Boolean) |
WriteNull() | 1 | Newtonsoft.Json.JsonWriter.WriteNull() |
WriteUndefined() | 1 | Newtonsoft.Json.JsonWriter .WriteUndefined() |
WriteRaw(String) | 1 | Newtonsoft.Json.JsonWriter.WriteRaw (String) |
WriteRawValue(String) | 1 | Newtonsoft.Json.JsonWriter.WriteRawValue (String) |
WriteValue(String) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (String) |
WriteValue(Int32) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Int32) |
WriteValue(UInt32) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (UInt32) |
WriteValue(Int64) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Int64) |
WriteValue(UInt64) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (UInt64) |
WriteValue(Single) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Single) |
WriteValue(Double) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Double) |
WriteValue(Boolean) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Boolean) |
WriteValue(Int16) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Int16) |
WriteValue(UInt16) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (UInt16) |
WriteValue(Char) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Char) |
WriteValue(Byte) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Byte) |
WriteValue(SByte) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (SByte) |
WriteValue(Decimal) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Decimal) |
WriteValue(DateTime) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (DateTime) |
WriteValue(DateTimeOffset) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (DateTimeOffset) |
WriteValue(Guid) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Guid) |
WriteValue(TimeSpan) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (TimeSpan) |
WriteValue(Nullable<Int32>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int32>) |
WriteValue(Nullable<UInt32>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt32>) |
WriteValue(Nullable<Int64>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int64>) |
WriteValue(Nullable<UInt64>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt64>) |
WriteValue(Nullable<Single>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Single>) |
WriteValue(Nullable<Double>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Double>) |
WriteValue(Nullable<Boolean>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Boolean>) |
WriteValue(Nullable<Int16>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Int16>) |
WriteValue(Nullable<UInt16>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<UInt16>) |
WriteValue(Nullable<Char>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Char>) |
WriteValue(Nullable<Byte>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Byte>) |
WriteValue(Nullable<SByte>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<SByte>) |
WriteValue(Nullable<Decimal>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<Decimal>) |
WriteValue(Nullable<DateTime>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTime>) |
WriteValue(Nullable<DateTimeOffset>) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Nullable<DateTimeOffset>) |
WriteValue(Byte[]) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Byte[]) |
WriteValue(Uri) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Uri) |
WriteValue(Object) | 1 | Newtonsoft.Json.JsonWriter.WriteValue (Object) |
WriteComment(String) | 1 | Newtonsoft.Json.JsonWriter.WriteComment (String) |
WriteWhitespace(String) | 1 | Newtonsoft.Json.JsonWriter .WriteWhitespace(String) |
HasLineInfo() | 1 | Newtonsoft.Json.IJsonLineInfo .HasLineInfo() |
get_LineNumber() | 1 | Newtonsoft.Json.IJsonLineInfo .get_LineNumber() |
get_LinePosition() | 1 | Newtonsoft.Json.IJsonLineInfo .get_LinePosition() |
set_DefaultSettings(Func <JsonSerializerSettings>) | 1 | Newtonsoft.Json.JsonConvert .set_DefaultSettings(Func <JsonSerializerSettings>) |
ToString(DateTime,DateFormatHandling ,DateTimeZoneHandling) | 1 | Newtonsoft.Json.JsonConvert.ToString (DateTime,DateFormatHandling ,DateTimeZoneHandling) |
ToString(DateTimeOffset ,DateFormatHandling) | 1 | Newtonsoft.Json.JsonConvert.ToString (DateTimeOffset,DateFormatHandling) |
ToString(Enum) | 1 | Newtonsoft.Json.JsonConvert.ToString (Enum) |
ToString(Double) | 1 | Newtonsoft.Json.JsonConvert.ToString (Double) |
Statistics
Stat | depthOfCalledByTests |
---|---|
Sum: | 7 415 |
Average: | 1.95 |
Minimum: | 1 |
Maximum: | 10 |
Standard deviation: | 1.74 |
Variance: | 3.02 |
Dead Code
![]() | Critical Rule warning: Potentially dead Types |
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
t => !t.IsPublic && // Public types might be used by client applications of your assemblies.
t.Name != "Program" &&
!t.IsGeneratedByCompiler &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
// Exclude static types that define only const fields
// because they cannot be seen as used in IL code.
!(t.IsStatic && t.NbMethods == 0 && !t.Fields.Where(f => !f.IsLiteral).Any()))
// Select types unused
let typesUnused =
from t in JustMyCode.Types where
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
select t
// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
where canTypeBeConsideredAsDeadProc(t) &&
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
select t)
from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }View Code Query or Rule Body
2 types matched
types | TypesUsingMe | depth | Full Name |
---|---|---|---|
MyInterfaceConverter | 0 type | 0 | Newtonsoft.Json.Tests.TestObjects .MyInterfaceConverter |
TraceWriter | 1 type | 1 | Newtonsoft.Json.Tests.TestObjects .TraceWriter |
Statistics
Stat | TypesUsingMe | depth |
---|---|---|
Sum: | 0 | 1 |
Average: | 0 | 0.5 |
Minimum: | 0 | 0 |
Maximum: | 0 | 1 |
Standard deviation: | 0 | 0.5 |
Variance: | 0 | 0.25 |
![]() | Critical Rule warning: Potentially dead Methods |
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
m => !m.IsPubliclyVisible && // Public methods might be used by client applications of your assemblies.
!m.IsEntryPoint && // Main() method is not used by-design.
!m.IsExplicitInterfaceImpl && // The IL code never explicitely calls explicit interface methods implementation.
!m.IsClassConstructor && // The IL code never explicitely calls class constructors.
!m.IsFinalizer && // The IL code never explicitely calls finalizers.
!m.IsVirtual && // Only check for non virtual method that are not seen as used in IL.
!(m.IsConstructor && // Don't take account of protected ctor that might be call by a derived ctors.
m.IsProtected) &&
!m.IsEventAdder && // The IL code never explicitely calls events adder/remover.
!m.IsEventRemover &&
!m.IsGeneratedByCompiler &&
!m.ParentType.IsDelegate &&
// Methods tagged with these two attributes are called by the serialization infrastructure.
!m.HasAttribute("System.Runtime.Serialization.OnSerializingAttribute".AllowNoMatch()) &&
!m.HasAttribute("System.Runtime.Serialization.OnDeserializedAttribute".AllowNoMatch()) &&
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))
// Get methods unused
let methodsUnused =
from m in JustMyCode.Methods where
m.NbMethodsCallingMe == 0 &&
canMethodBeConsideredAsDeadProc(m)
select m
// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
methods => // Unique loop, just to let a chance to build the hashset.
from o in (new object()).ToEnumerable()
// Use a hashet to make Intersect calls much faster!
let hashset = methods.ToHashSet()
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
where canMethodBeConsideredAsDeadProc(m) &&
// Select methods called only by methods already considered as dead
hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
select m)
from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }View Code Query or Rule Body
101 methods matched
methods | MethodsCallingMe | depth | Full Name |
---|---|---|---|
.ctor() | 0 method | 0 | Newtonsoft.Json.Utilities .BidirectionalDictionary<TFirst,TSecond> ..ctor() |
.ctor(IList) | 0 method | 0 | Newtonsoft.Json.Utilities .CollectionWrapper<T>..ctor(IList) |
.ctor(ICollection<T>) | 0 method | 0 | Newtonsoft.Json.Utilities .CollectionWrapper<T>..ctor(ICollection <T>) |
.ctor(IDictionary) | 0 method | 0 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue>..ctor (IDictionary) |
.ctor(IDictionary<TKey,TValue>) | 0 method | 0 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue>..ctor (IDictionary<TKey,TValue>) |
.ctor(IReadOnlyDictionary<TKey,TValue>) | 0 method | 0 | Newtonsoft.Json.Utilities .DictionaryWrapper<TKey,TValue>..ctor (IReadOnlyDictionary<TKey,TValue>) |
get_Name() | 0 method | 0 | Newtonsoft.Json.Utilities.EnumValue<T> .get_Name() |
get_FSharpCoreAssembly() | 0 method | 0 | Newtonsoft.Json.Utilities.FSharpUtils .get_FSharpCoreAssembly() |
BuildMapCreator<TKey,TValue>() | 0 method | 0 | Newtonsoft.Json.Utilities.FSharpUtils .BuildMapCreator<TKey,TValue>() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Utilities.StringBuffer. .ctor() |
.ctor(IEnumerable<KeyValuePair <TEnumeratorKey,TEnumeratorValue>>) | 0 method | 0 | Newtonsoft.Json.Serialization .DefaultContractResolver+DictionaryEnume rator<TEnumeratorKey,TEnumeratorValue>. .ctor(IEnumerable<KeyValuePair <TEnumeratorKey,TEnumeratorValue>>) |
SetDynamicCodeGeneration(Boolean) | 0 method | 0 | Newtonsoft.Json.Serialization .JsonTypeReflector .SetDynamicCodeGeneration(Boolean) |
ChangeItemKey(JToken,String) | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.ChangeItemKey (JToken,String) |
ContainsItem(JToken) | 1 method | 1 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.ContainsItem (JToken) |
Remove(String) | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.Remove(String) |
get_Item(String) | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.get_Item (String) |
get_Values() | 0 method | 0 | Newtonsoft.Json.Linq .JPropertyKeyedCollection.get_Values() |
.ctor(String) | 0 method | 0 | Newtonsoft.Json.Tests.Bson .BsonReaderTests+Cat..ctor(String) |
get_Members() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .TestDynamicObject.get_Members() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtendedObject..ctor () |
set_GetPrivate(Boolean) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_GetPrivate(Boolean) |
set_ExtensionData(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataTestCla ss.set_ExtensionData(IDictionary<String ,JToken>) |
set_ExtensionData1(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass.set_ExtensionData1 (IDictionary<String,JToken>) |
set_ExtensionData2(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+MultipleExtensionDat aAttributesTestClass.set_ExtensionData2 (IDictionary<String,JToken>) |
set_ExtensionData0(IDictionary<String ,JToken>) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+ExtensionDataAttribu tesInheritanceTestClass .set_ExtensionData0(IDictionary<String ,JToken>) |
GetPerson() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest.GetPerson() |
get_IsTransient() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseClass .get_IsTransient() |
set_IsTransient(Boolean) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BaseClass .set_IsTransient(Boolean) |
op_Implicit(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DictionaryKeyCast .op_Implicit(String) |
get_A2() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+A.get_A2() |
set_A2(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+A.set_A2(String) |
get_B3() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+B.get_B3() |
set_B3(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+B.set_B3(String) |
get_AA_property3() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.get_AA_property3( ) |
get_AA_property4() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.get_AA_property4( ) |
get_AA_property6() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+AA.get_AA_property6( ) |
get_BB_property3() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.get_BB_property3( ) |
get_BB_property4() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.get_BB_property4( ) |
get_BB_property6() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+BB.get_BB_property6( ) |
set_Prop1(Byte[]) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyClass.set_Prop1 (Byte[]) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+MyClass..ctor() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+Derived..ctor() |
.ctor(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor..ctor(String) |
get_A() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor.get_A() |
set_A(String) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor.set_A(String) |
set_B(Nullable<Int32>) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithParameterised Constructor.set_B(Nullable<Int32>) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor..ctor() |
get_A() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor.get_A() |
set_A(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor.set_A(String) |
set_B(Nullable<Int32>) | 1 method | 1 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+DTOWithoutParameteri sedConstructor.set_B(Nullable<Int32>) |
get_Foo() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+FooBar.get_Foo() |
set_Foo(DateTimeOffset) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+FooBar.set_Foo (DateTimeOffset) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerTest+FooBar..ctor() |
set_BaseProperty(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .BaseWithPrivate.set_BaseProperty(String ) |
set_DerivedProperty(String) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedWithPrivate.set_DerivedProperty (String) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .NonPublicConstructorWithJsonConstructor ..ctor() |
get_LastName() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ErrorPerson2.get_LastName() |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .ErrorTestObject.OnError (StreamingContext,ErrorContext) |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .SerializationEventAttributeTests+FooEve nt.OnError(StreamingContext,ErrorContext ) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .SerializationEventOrderTestObject .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .SerializationEventOrderTestObject .OnDeserializingMethod(StreamingContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedSerializationEventOrderTestObjec t.OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedSerializationEventOrderTestObjec t.OnDeserializingMethod(StreamingContext ) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedDerivedSerializationEventOrderTe stObject.OnSerializedMethod (StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .DerivedDerivedSerializationEventOrderTe stObject.OnDeserializingMethod (StreamingContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorList<T>..ctor() |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Serialization .JsonSerializerCollectionsTests+PrivateD efaultCtorWithIEnumerableCtorList<T>. .ctor() |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DateTimeErrorObjectCollection .OnErrorMethod(StreamingContext ,ErrorContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .MyInterfaceConverter..ctor() |
.ctor() | 1 method | 1 | Newtonsoft.Json.Tests.TestObjects .TraceWriter..ctor() |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ListErrorObjectCollection.OnErrorMethod (StreamingContext,ErrorContext) |
get_CreationDate() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.get_CreationDate() |
set_CreationDate(DateTimeOffset) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.set_CreationDate (DateTimeOffset) |
get_Properties() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .ParticipantEntity.get_Properties() |
HandleError(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PersonError.HandleError (StreamingContext,ErrorContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorTestClass..ctor() |
.ctor(Object) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorTestClass..ctor (Object) |
.ctor(Object,Object) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorTestClass..ctor (Object,Object) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateConstructorWithPublicParametized ConstructorTestClass..ctor() |
get_OverriddenPropertyString() | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateImplementationBClass .get_OverriddenPropertyString() |
set_OverriddenPropertyString(String) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .PrivateImplementationBClass .set_OverriddenPropertyString(String) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestDictionary .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestDictionary .OnDeserializingMethod(StreamingContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestList .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestList .OnDeserializingMethod(StreamingContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .OnSerializedMethod(StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .OnDeserializingMethod(StreamingContext) |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObject .OnErrorMethod(StreamingContext ,ErrorContext) |
OnDerivedSerializedMethod (StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DerivedSerializationEventTestObject .OnDerivedSerializedMethod (StreamingContext) |
OnDerivedDeserializingMethod (StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DerivedSerializationEventTestObject .OnDerivedDeserializingMethod (StreamingContext) |
OnDerivedErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .DerivedSerializationEventTestObject .OnDerivedErrorMethod(StreamingContext ,ErrorContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObjectWithConstru ctor.OnSerializedMethod(StreamingContext ) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .SerializationEventTestObjectWithConstru ctor.OnDeserializingMethod (StreamingContext) |
OnErrorMethod(StreamingContext ,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.TestObjects .VersionKeyedCollection.OnErrorMethod (StreamingContext,ErrorContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .SerializationTests+SerializationEventTe stObject.OnSerializedMethod (StreamingContext) |
OnDeserializingMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .SerializationTests+SerializationEventTe stObject.OnDeserializingMethod (StreamingContext) |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .SerializationTests+PersonError.OnError (StreamingContext,ErrorContext) |
.ctor() | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .DeserializeConstructorHandling+Website. .ctor() |
OnError(StreamingContext,ErrorContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .ErrorHandlingAttribute+Employee.OnError (StreamingContext,ErrorContext) |
OnSerializedMethod(StreamingContext) | 0 method | 0 | Newtonsoft.Json.Tests.Documentation .Samples.Serializer .SerializationCallbackAttributes+Seriali zationEventTestObject.OnSerializedMethod (StreamingContext) |
Statistics
Stat | MethodsCallingMe | depth |
---|---|---|
Sum: | 0 | 6 |
Average: | 0 | 0.059 |
Minimum: | 0 | 0 |
Maximum: | 0 | 1 |
Standard deviation: | 0 | 0.24 |
Variance: | 0 | 0.056 |
![]() | Critical Rule warning: Potentially dead Fields |
warnif count > 0
from f in JustMyCode.Fields where
f.NbMethodsUsingMe == 0 &&
!f.IsPublic && // Although not recommended, public fields might be used by client applications of your assemblies.
!f.IsLiteral && // The IL code never explicitely uses literal fields.
!f.IsEnumValue && // The IL code never explicitely uses enumeration value.
f.Name != "value__" && // Field named 'value__' are relative to enumerations and the IL code never explicitely uses them.
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
!f.IsGeneratedByCompiler
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select fView Code Query or Rule Body
1 fields matched
field | Full Name |
---|---|
_additionalData | Newtonsoft.Json.Tests.Serialization .ExtensionDataTests+CustomerInvoice ._additionalData |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Wrong usage of IsNotDeadCodeAttribute |
// This IsNotDeadCodeAttribute can be used to signify that
// despite a member could be removed without provoking any syntax error
// (we also say it is dead code), your intention is to not remove this member.
// Default 'Dead Code' code rules take account of this attribute.
// IsNotDeadCodeAttribute is defined in NDepend.API.dll
// If you don't want to link NDepend.API.dll, you can use
// your own IsNotDeadCodeAttribute and adapt this rule.
warnif count == 1
let tAttr = Types.WithFullName("NDepend.Attributes.IsNotDeadCodeAttribute").FirstOrDefault()
where tAttr != null
// Get types that do a wrong usage of IsNotDeadCodeAttribute
let types = from t in Application.Types where
t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
( // types used don't need to be tagged with IsNotDeadCodeAttribute!
t.NbTypesUsingMe > 0 ||
// Static types that define only const fields cannot be seen as used in IL code.
// They don't need to be tagged with IsNotDeadCodeAttribute.
(t.IsStatic && t.NbMethods == 0 && !t.Fields.Where(f => !f.IsLiteral).Any())
)
select t
// Get methods that do a wrong usage of IsNotDeadCodeAttribute
let methods = from m in Application.Methods where
m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
m.NbMethodsCallingMe > 0
select m
// Get fields that do a wrong usage of IsNotDeadCodeAttribute
let fields = from f in Application.Fields where
f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
f.NbMethodsUsingMe > 0
select f
where types.Count() > 0 || methods.Count() > 0 || fields.Count() > 0
select new { tAttr, types , methods, fields }View Code Query or Rule Body
No types matched
Trend Charts
Lines of Code
Rules Violated
Rules Violations
Percentage Coverage by Tests

Max
Average
Third-Party Usage
Assemblies Dependencies
Assembly | Depends on | Is referenced by |
---|---|---|
Newtonsoft.Json v6.0.0.0 | mscorlib v4.0.0.0 ; System.Core v4.0.0.0 ; System v4.0.0.0 ; System.Data v4.0.0.0 ; System.Xml v4.0.0.0 ; System.Xml.Linq v4.0.0.0 ; System.Numerics v4.0.0.0 ; System.Runtime.Serialization v4.0.0.0 ; | Newtonsoft.Json.Tests v6.0.0.0 ; |
Newtonsoft.Json.Tests v6.0.0.0 | mscorlib v4.0.0.0 ; Newtonsoft.Json v6.0.0.0 ; System.Data.Entity v4.0.0.0 ; System v4.0.0.0 ; System.Data.Linq v4.0.0.0 ; System.Core v4.0.0.0 ; System.Data v4.0.0.0 ; System.Numerics v4.0.0.0 ; System.Xml v4.0.0.0 ; System.Xml.Linq v4.0.0.0 ; Autofac v3.5.0.0 ; nunit.framework v2.6.2.12296 ; System.Runtime.Serialization v4.0.0.0 ; Microsoft.CSharp v4.0.0.0 ; System.Web v4.0.0.0 ; System.ComponentModel.DataAnnotations v4.0.0.0 ; System.Web.Extensions v4.0.0.0 ; FSharp.Core v4.0.0.0 ; System.Collections.Immutable v1.1.20.0 ; System.Drawing v4.0.0.0 ; | - |
Assemblies Build Order
- Newtonsoft.Json
- Newtonsoft.Json.Tests
Assemblies Build Order
- Newtonsoft.Json
- Newtonsoft.Json.Tests
Analysis Log : Information and Warnings
The Warnings can reveal potential flaws concerning the health of the build process.
A particular warn can be disabled through the NDepend interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.
Message | |
---|---|
![]() | Begin full analysis with NDepend v5.2.1.8320 |
![]() | No Baseline for Comparison loaded. |
![]() | Concurrent mode |
![]() | .NET Assembly loaded from {C:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json\bin\Debug\Net45} Newtonsoft.Json.dll v6.0.0.0 |
![]() | .NET Assemblies loaded from {C:\projects\Newtonsoft.Json-master\Src\Newtonsoft.Json.Tests\bin\Debug\Net45} Newtonsoft.Json.Tests.dll v6.0.0.0 Autofac.dll v3.5.0.0 nunit.framework.dll v2.6.2.12296 FSharp.Core.dll v4.0.0.0 System.Collections.Immutable.dll v1.1.20.0 |
![]() | .NET Assemblies loaded from {C:\Windows\Microsoft.NET\Framework\v4.0.30319} mscorlib.dll v4.0.0.0 System.Core.dll v4.0.0.0 System.dll v4.0.0.0 System.Data.dll v4.0.0.0 System.Xml.dll v4.0.0.0 System.Xml.Linq.dll v4.0.0.0 System.Numerics.dll v4.0.0.0 System.Runtime.Serialization.dll v4.0.0.0 System.Data.Entity.dll v4.0.0.0 System.Data.Linq.dll v4.0.0.0 Microsoft.CSharp.dll v4.0.0.0 System.Web.dll v4.0.0.0 System.ComponentModel.DataAnnotations.dll v4.0.0.0 System.Web.Extensions.dll v4.0.0.0 System.Drawing.dll v4.0.0.0 |
![]() | No application or third party assembly found in directory {C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF} |
![]() | 523 source files parsed ; all source files found ; all source files in-sync with PDB |
![]() | 0 code rule has been extracted from code. |
![]() | No dependency cycle detected in assemblies referencement graph. |
![]() | 07/25/2014 21:10:16 Analyse dependencies of your application. |
![]() | 07/25/2014 21:10:16 Log trend metrics values. |
![]() | 07/25/2014 21:10:17 Execute queries and rules |
![]() | 11 critical rules are violated. - Types too big - critical - Methods too complex - critical - Methods with too many parameters - critical - Do not hide base class methods - Avoid namespaces mutually dependent - Potentially dead Types - Potentially dead Methods - Potentially dead Fields - Constructors of abstract classes should be declared as protected or private - Don't assign a field from many methods - ... |
![]() | 07/25/2014 21:10:18 NDepend analysis done. Duration: 00:04 |
![]() | 07/25/2014 21:10:18 Building the report (standard). |