Files
DP44/enriched-qwen3-coder-next/DataPRO/Modules/SystemSettings/ISOSettings/Properties.md
2026-04-17 14:55:32 -04:00

103 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
source_files:
- DataPRO/Modules/SystemSettings/ISOSettings/Properties/AssemblyInfo.cs
- DataPRO/Modules/SystemSettings/ISOSettings/Properties/Annotations.cs
generated_at: "2026-04-16T04:42:26.994226+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "21be5491446b89ad"
---
# Properties
## Documentation: `ISOSettings` Assembly (DataPRO Module)
---
### 1. **Purpose**
This module is the `ISOSettings` assembly, a .NET class library within the `DataPRO` system responsible for managing ISO-related system settings. Based on its name and placement under `DataPRO/Modules/SystemSettings/ISOSettings`, it likely encapsulates configuration logic, data models, and possibly UI-related components for handling ISO (International Organization for Standardization) standards—such as country codes, language codes, or other standardized identifiers used in system configuration. However, **no implementation files (e.g., `.cs` source files beyond `AssemblyInfo.cs` and `Annotations.cs`) are provided**, so the actual business logic, types, or public APIs beyond the annotation attributes are *not visible* in the given source. The assembly serves as a foundational module for system settings related to ISO standards, but its concrete functionality cannot be determined from the provided files.
---
### 2. **Public Interface**
The only *publicly visible* types in the provided source are the **JetBrains.Annotations**-style attributes defined in `ISOSettings.Annotations`. These are *not* functional logic but metadata annotations used for static analysis (e.g., by ReSharper or Rider). They are part of a local copy of JetBrains annotation library, re-packaged under the `ISOSettings.Annotations` namespace.
Below are the **public attributes** defined in `Annotations.cs`:
| Name | Signature | Purpose |
|------|-----------|---------|
| `CanBeNullAttribute` | `public sealed class CanBeNullAttribute : Attribute` | Indicates the annotated element *may* be `null`. |
| `NotNullAttribute` | `public sealed class NotNullAttribute : Attribute` | Indicates the annotated element *must never* be `null`. |
| `ItemNotNullAttribute` | `public sealed class ItemNotNullAttribute : Attribute` | For collections/Tasks/Lazy, indicates *items/results* are never `null`. |
| `ItemCanBeNullAttribute` | `public sealed class ItemCanBeNullAttribute : Attribute` | For collections/Tasks/Lazy, indicates *items/results* may be `null`. |
| `ImplicitNotNullAttribute` | `public sealed class ImplicitNotNullAttribute : Attribute` | Applies `[NotNull]`/`[ItemNotNull]` implicitly to all members in scope. |
| `StringFormatMethodAttribute` | `public sealed class StringFormatMethodAttribute : Attribute` | Marks methods that build strings from format patterns (e.g., `string.Format`). Constructor takes `formatParameterName`. |
| `ValueProviderAttribute` | `public sealed class ValueProviderAttribute : Attribute` | Indicates a parameter/property/field should be one of a limited set of values (e.g., enum-like). Constructor takes `name` (likely referencing a provider type). |
| `InvokerParameterNameAttribute` | `public sealed class InvokerParameterNameAttribute : Attribute` | For parameters expected to match a callers parameter name (e.g., `ArgumentNullException`s `paramName`). |
| `NotifyPropertyChangedInvocatorAttribute` | `public sealed class NotifyPropertyChangedInvocatorAttribute : Attribute` | Marks methods used to notify property changes (e.g., `INotifyPropertyChanged`). Optional constructor for `parameterName`. |
| `ContractAnnotationAttribute` | `public sealed class ContractAnnotationAttribute : Attribute` | Describes input/output behavior contracts (e.g., `null => null; notnull => notnull`). Constructor takes `contract` string. |
| `LocalizationRequiredAttribute` | `public sealed class LocalizationRequiredAttribute : Attribute` | Indicates an element requires localization. Constructor optional `required` (default `true`). |
| `CannotApplyEqualityOperatorAttribute` | `public sealed class CannotApplyEqualityOperatorAttribute : Attribute` | Indicates `==`/`!=` should not be used (use `Equals()` instead). |
| `BaseTypeRequiredAttribute` | `public sealed class BaseTypeRequiredAttribute : Attribute` | Requires types using this attribute to implement a specific base type. Constructor takes `baseType`. |
| `UsedImplicitlyAttribute` | `public sealed class UsedImplicitlyAttribute : Attribute` | Marks elements used implicitly (e.g., via reflection) to suppress unused warnings. Has overloads with `ImplicitUseKindFlags`/`ImplicitUseTargetFlags`. |
| `MeansImplicitUseAttribute` | `public sealed class MeansImplicitUseAttribute : Attribute` | Applied to attributes to mark types using them as implicitly used. Has same flags overloads. |
| `PublicAPIAttribute` | `public sealed class PublicAPIAttribute : Attribute` | Marks publicly exposed API that should not be removed. Optional `comment`. |
| `InstantHandleAttribute` | `public sealed class InstantHandleAttribute : Attribute` | Indicates a delegate/`IEnumerable` parameter is consumed synchronously (e.g., executed/enumerated before method returns). |
| `PureAttribute` | `public sealed class PureAttribute : Attribute` | Indicates method has no side effects (like `System.Diagnostics.Contracts.PureAttribute`). |
| `MustUseReturnValueAttribute` | `public sealed class MustUseReturnValueAttribute : Attribute` | Indicates return value must be used. Optional `justification`. |
| `ProvidesContextAttribute` | `public sealed class ProvidesContextAttribute : Attribute` | Indicates a member provides a context value that should be used instead of alternatives. |
| `PathReferenceAttribute` | `public sealed class PathReferenceAttribute : Attribute` | Indicates a parameter is a file/folder path in a web project. Optional `basePath`. |
| `SourceTemplateAttribute` | `public sealed class SourceTemplateAttribute : Attribute` | Marks extension methods as source templates (e.g., for ReSharper live templates). |
| `MacroAttribute` | `public sealed class MacroAttribute : Attribute` | Specifies macros for `SourceTemplate` parameters (`Expression`, `Editable`, `Target`). |
| `AspMvc*` attributes (e.g., `AspMvcActionAttribute`, `AspMvcAreaAttribute`, etc.) | Multiple `public sealed class` attributes | ASP.NET MVC-specific annotations for view/controller/action resolution. |
| `Razor*` attributes (e.g., `RazorSectionAttribute`, `RazorImportNamespaceAttribute`) | Multiple `public sealed class` attributes | Razor view engine annotations (sections, imports, directives). |
| `Xaml*` attributes (e.g., `XamlItemsControlAttribute`) | `public sealed class` attributes | XAML-specific annotations for data context resolution. |
| `HtmlElementAttributesAttribute`, `HtmlAttributeValueAttribute` | `public sealed class` attributes | HTML attribute annotations for static analysis. |
| `CollectionAccessAttribute` | `public sealed class CollectionAccessAttribute : Attribute` | Indicates how a method affects collection contents. Constructor takes `CollectionAccessType`. |
| `CollectionAccessType` enum | `public enum CollectionAccessType` | Values: `None`, `Read`, `ModifyExistingContent`, `UpdatedContent`. |
| `AssertionMethodAttribute`, `AssertionConditionAttribute` | `public sealed class` attributes | Marks assertion methods (e.g., `Guard.NotNull(...)`) and their condition parameters. |
| `AssertionConditionType` enum | `public enum AssertionConditionType` | Values: `IS_TRUE`, `IS_FALSE`, `IS_NULL`, `IS_NOT_NULL`. |
| `TerminatesProgramAttribute` | `[Obsolete] public sealed class TerminatesProgramAttribute : Attribute` | Obsolete; use `[ContractAnnotation("=> halt")]` instead. |
| `LinqTunnelAttribute`, `NoEnumerationAttribute`, `RegexPatternAttribute` | `public sealed class` attributes | LINQ, enumeration, and regex pattern annotations. |
| `NoReorder` | `public sealed class NoReorder : Attribute` | Prevents member reordering in IDEs. |
> **Note**: None of these attributes contain executable logic. They are *purely metadata* for tooling.
---
### 3. **Invariants**
- **No runtime behavior**: The attributes defined here are *compile-time-only* annotations. They have no effect at runtime unless consumed by a static analyzer (e.g., ReSharper).
- **Attribute usage constraints**: Each attributes `[AttributeUsage(...)]` enforces where it can be applied (e.g., `NotNullAttribute` may be applied to methods, parameters, properties, etc., but not to assemblies).
- **No validation of attribute usage**: The attributes themselves do not enforce correctness; misuse (e.g., applying `[NotNull]` to a value that *is* null) will not cause runtime exceptions.
- **No public API surface beyond attributes**: Since no other source files are provided, there are no classes, methods, or interfaces whose invariants can be documented.
---
### 4. **Dependencies**
#### Dependencies *of* this assembly:
- **.NET Framework** (implied by `System.*` namespaces and `AssemblyInfo.cs` style).
- **JetBrains.Annotations** (via the `Annotations.cs` file, which is a verbatim copy of JetBrains annotation library, repackaged here).
- This is *not* a runtime dependency; its a *source dependency* for static analysis tooling.
- The `Annotations.cs` file includes the MIT license from JetBrains.
#### Dependencies *on* this assembly:
- **Unknown** — no other modules or projects are referenced in the provided source.
- Since this is an assembly (`AssemblyInfo.cs`), it is likely referenced by other modules in the `DataPRO` system (e.g., `SystemSettings` or UI modules), but this is inferred from folder structure, not source.
---
### 5. **Gotchas**
- **Misleading namespace**: The `ISOSettings.Annotations` namespace suggests this module *contains* ISO-related logic, but the provided files only contain *annotations*—not actual ISO settings implementation. This may confuse developers expecting business logic.
- **No versioning in annotations**: The `Annotations.cs` file is a static copy of JetBrains annotations (copyright 2016). It may be outdated relative to newer JetBrains annotation versions (e.g., missing newer attributes like `[NotNullForRef]`, `[SuppressMessage]`, etc.).
- **No documentation comments for attributes**: While XML doc comments exist, they are minimal and copied from JetBrains original. Developers should verify behavior in context of their static analyzer.
- **`[ComVisible(false)]`**: The assembly is not visible to COM (`ComVisible(false)`), which may matter if interoperating with legacy COM components.
- **Hardcoded GUID**: The `Guid("7446722e-490d-4f6a-beaf-907947e576d5")` is fixed. Changing it may break COM interop or strong-naming if used elsewhere.
- **Assembly version `1.0.0.0`**: Both `AssemblyVersion` and `AssemblyFileVersion` are `1.0.0.0`. This may indicate incomplete versioning or a placeholder.
> **None identified from source alone.**
> *(Note: The above gotchas are inferred from *structure and content* of the provided files, not runtime behavior.)*