130 lines
8.3 KiB
Markdown
130 lines
8.3 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- DataPRO/Modules/SystemSettings/ISOSettings/Properties/AssemblyInfo.cs
|
||
|
|
- DataPRO/Modules/SystemSettings/ISOSettings/Properties/Annotations.cs
|
||
|
|
generated_at: "2026-04-17T15:58:16.438375+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "6bc3500d0b0ec694"
|
||
|
|
---
|
||
|
|
|
||
|
|
# ISOSettings Module Documentation
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module provides assembly metadata and JetBrains ReSharper external annotations for the `ISOSettings` component within the `DataPRO/Modules/SystemSettings` subsystem. The `AssemblyInfo.cs` file defines standard .NET assembly identity information (version 1.0.0.0, copyright 2016), while `Annotations.cs` supplies static analysis attributes that enable enhanced IDE inspections for nullability, contracts, MVC/Razor development, and code quality warnings. These annotations are design-time constructs and have no runtime behavior.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### AssemblyInfo.cs (Assembly-Level Attributes)
|
||
|
|
|
||
|
|
| Attribute | Value |
|
||
|
|
|-----------|-------|
|
||
|
|
| `AssemblyTitle` | `"ISOSettings"` |
|
||
|
|
| `AssemblyDescription` | `""` (empty) |
|
||
|
|
| `AssemblyConfiguration` | `""` (empty) |
|
||
|
|
| `AssemblyCompany` | `""` (empty) |
|
||
|
|
| `AssemblyProduct` | `"ISOSettings"` |
|
||
|
|
| `AssemblyCopyright` | `"Copyright © 2016"` |
|
||
|
|
| `AssemblyTrademark` | `""` (empty) |
|
||
|
|
| `AssemblyCulture` | `""` (empty) |
|
||
|
|
| `ComVisible` | `false` |
|
||
|
|
| `Guid` | `"7446722e-490d-4f6a-beaf-907947e576d5"` |
|
||
|
|
| `AssemblyVersion` | `"1.0.0.0"` |
|
||
|
|
| `AssemblyFileVersion` | `"1.0.0.0"` |
|
||
|
|
|
||
|
|
### Annotations.cs (Namespace: `ISOSettings.Annotations`)
|
||
|
|
|
||
|
|
This file defines **70+ attribute classes** for ReSharper static analysis. Key categories include:
|
||
|
|
|
||
|
|
#### Nullability Attributes
|
||
|
|
- **`CanBeNullAttribute`** — Marks elements that may be `null`; consumers must check before use.
|
||
|
|
- **`NotNullAttribute`** — Marks elements that should never be `null`.
|
||
|
|
- **`ItemNotNullAttribute`** — For `IEnumerable`, `Task`, or `Lazy<T>`: indicates items/Result/Value are never null.
|
||
|
|
- **`ItemCanBeNullAttribute`** — For `IEnumerable`, `Task`, or `Lazy<T>`: indicates items/Result/Value may be null.
|
||
|
|
- **`ImplicitNotNullAttribute`** — Implicitly applies `[NotNull]`/`[ItemNotNull]` to all members in a scope.
|
||
|
|
|
||
|
|
#### Contract & Method Behavior Attributes
|
||
|
|
- **`ContractAnnotationAttribute`** — Describes input/output dependencies (e.g., `"null => null; notnull => notnull"`).
|
||
|
|
- **`PureAttribute`** — Marks methods with no observable state changes.
|
||
|
|
- **`MustUseReturnValueAttribute`** — Requires the return value to be used.
|
||
|
|
- **`AssertionMethodAttribute`** / **`AssertionConditionAttribute`** — Marks assertion methods and their condition parameters.
|
||
|
|
- **`TerminatesProgramAttribute`** — *[Obsolete: use `ContractAnnotation("=> halt")`]* Marks methods that unconditionally halt execution.
|
||
|
|
- **`InstantHandleAttribute`** — Indicates a parameter is fully handled during method execution.
|
||
|
|
- **`LinqTunnelAttribute`** — Marks pure LINQ methods with postponed enumeration.
|
||
|
|
- **`NoEnumerationAttribute`** — Indicates an `IEnumerable` parameter is not enumerated.
|
||
|
|
|
||
|
|
#### String & Format Attributes
|
||
|
|
- **`StringFormatMethodAttribute`** — Marks methods that use format strings; constructor takes `formatParameterName`.
|
||
|
|
- **`RegexPatternAttribute`** — Marks a parameter as a regular expression pattern.
|
||
|
|
|
||
|
|
#### Property Change Notification
|
||
|
|
- **`NotifyPropertyChangedInvocatorAttribute`** — Marks methods used to raise `INotifyPropertyChanged` events.
|
||
|
|
|
||
|
|
#### Implicit Usage Tracking
|
||
|
|
- **`UsedImplicitlyAttribute`** — Marks symbols used via reflection or external code.
|
||
|
|
- **`MeansImplicitUseAttribute`** — Applied to attributes to prevent "unused" warnings on marked symbols.
|
||
|
|
- **`PublicAPIAttribute`** — Marks public API that should not be removed.
|
||
|
|
|
||
|
|
#### ASP.NET MVC Attributes
|
||
|
|
- `AspMvcActionAttribute`, `AspMvcAreaAttribute`, `AspMvcControllerAttribute`, `AspMvcMasterAttribute`, `AspMvcModelTypeAttribute`, `AspMvcPartialViewAttribute`, `AspMvcViewAttribute`, `AspMvcViewComponentAttribute`, `AspMvcViewComponentViewAttribute`, `AspMvcActionSelectorAttribute`, `AspMvcDisplayTemplateAttribute`, `AspMvcEditorTemplateAttribute`, `AspMvcTemplateAttribute`, `AspMvcSuppressViewErrorAttribute`
|
||
|
|
- Location format attributes: `AspMvcAreaMasterLocationFormatAttribute`, `AspMvcAreaPartialViewLocationFormatAttribute`, `AspMvcAreaViewLocationFormatAttribute`, `AspMvcMasterLocationFormatAttribute`, `AspMvcPartialViewLocationFormatAttribute`, `AspMvcViewLocationFormatAttribute`
|
||
|
|
|
||
|
|
#### Razor Attributes
|
||
|
|
- `RazorSectionAttribute`, `RazorImportNamespaceAttribute`, `RazorInjectionAttribute`, `RazorDirectiveAttribute`, `RazorHelperCommonAttribute`, `RazorLayoutAttribute`, `RazorWriteLiteralMethodAttribute`, `RazorWriteMethodAttribute`, `RazorWriteMethodParameterAttribute`
|
||
|
|
|
||
|
|
#### Collection Access
|
||
|
|
- **`CollectionAccessAttribute`** — Indicates how a method affects collection content. Uses `CollectionAccessType` enum (`None`, `Read`, `ModifyExistingContent`, `UpdatedContent`).
|
||
|
|
|
||
|
|
#### XAML Attributes
|
||
|
|
- `XamlItemsControlAttribute`, `XamlItemBindingOfItemsControlAttribute`
|
||
|
|
|
||
|
|
#### Other Attributes
|
||
|
|
- `LocalizationRequiredAttribute`, `CannotApplyEqualityOperatorAttribute`, `BaseTypeRequiredAttribute`, `ValueProviderAttribute`, `InvokerParameterNameAttribute`, `PathReferenceAttribute`, `SourceTemplateAttribute`, `MacroAttribute`, `ProvidesContextAttribute`, `HtmlElementAttributesAttribute`, `HtmlAttributeValueAttribute`, `NoReorder`
|
||
|
|
- ASP.NET Web Forms: `AspChildControlTypeAttribute`, `AspDataFieldAttribute`, `AspDataFieldsAttribute`, `AspMethodPropertyAttribute`, `AspRequiredAttributeAttribute`, `AspTypePropertyAttribute`
|
||
|
|
|
||
|
|
#### Supporting Enums
|
||
|
|
- **`ImplicitUseKindFlags`** — Flags: `Default`, `Access`, `Assign`, `InstantiatedWithFixedConstructorSignature`, `InstantiatedNoFixedConstructorSignature`
|
||
|
|
- **`ImplicitUseTargetFlags`** — Flags: `Default`, `Itself`, `Members`, `WithMembers`
|
||
|
|
- **`CollectionAccessType`** — Flags: `None`, `Read`, `ModifyExistingContent`, `UpdatedContent`
|
||
|
|
- **`AssertionConditionType`** — `IS_TRUE`, `IS_FALSE`, `IS_NULL`, `IS_NOT_NULL`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- **Assembly Identity**: The assembly `ISOSettings` is identified by GUID `7446722e-490d-4f6a-beaf-907947e576d5` and version `1.0.0.0`.
|
||
|
|
- **COM Visibility**: All types in this assembly are COM-invisible (`ComVisible(false)`).
|
||
|
|
- **Annotation Namespace**: All annotation attributes reside in `ISOSettings.Annotations` namespace.
|
||
|
|
- **Design-Time Only**: Attributes in `Annotations.cs` are metadata-only; they do not affect runtime behavior.
|
||
|
|
- **License**: `Annotations.cs` is MIT-licensed from JetBrains (copyright 2016).
|
||
|
|
- **Compiler Warnings**: The file disables warning 1591 (missing XML documentation) and suppresses several ReSharper inspections at file level.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### Imports (what this module depends on)
|
||
|
|
- `System.Reflection` — For assembly metadata attributes.
|
||
|
|
- `System.Runtime.CompilerServices` — For compiler-related attributes.
|
||
|
|
- `System.Runtime.InteropServices` — For COM interop attributes (`ComVisible`, `Guid`).
|
||
|
|
- `System` — Base types for annotation attributes.
|
||
|
|
|
||
|
|
### Consumers (what depends on this module)
|
||
|
|
- **Unclear from source alone** — The `ISOSettings` assembly appears to be part of a larger `DataPRO/Modules/SystemSettings` subsystem, but no consuming code is present in these files. The annotations suggest integration with ASP.NET MVC, Razor, and XAML-based components.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Gotchas
|
||
|
|
|
||
|
|
1. **Empty Metadata Fields**: `AssemblyDescription`, `AssemblyConfiguration`, `AssemblyCompany`, `AssemblyTrademark`, and `AssemblyCulture` are all empty strings. This may indicate incomplete assembly configuration or placeholder values.
|
||
|
|
|
||
|
|
2. **Obsolete Attribute**: `TerminatesProgramAttribute` is marked `[Obsolete("Use [ContractAnnotation('=> halt')] instead")]`. New code should use `ContractAnnotationAttribute`.
|
||
|
|
|
||
|
|
3. **Version Stagnation**: Both `AssemblyVersion` and `AssemblyFileVersion` are `1.0.0.0`, suggesting this may be an initial/unmaintained version or the version is managed elsewhere (e.g., CI/CD).
|
||
|
|
|
||
|
|
4. **Third-Party Annotations**: The `Annotations.cs` file is a standard JetBrains annotations file. It should be kept in sync with ReSharper versions if updated annotations are needed.
|
||
|
|
|
||
|
|
5. **Warning Suppressions**: The annotations file suppresses warning 1591 and multiple ReSharper inspections globally via `#pragma warning disable` and `// ReSharper disable` directives. This may hide legitimate issues in this file.
|