Files

103 lines
11 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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.)*