--- source_files: - DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Graph/Properties/AssemblyInfo.cs - DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Graph/Properties/Annotations.cs generated_at: "2026-04-17T15:56:49.185438+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "88f7afb7b05c4748" --- # Documentation: DTS.Viewer.Graph Properties ## 1. Purpose This module provides assembly metadata and JetBrains ReSharper code analysis annotations for the `DTS.Viewer.Graph` component within the DTS Viewer application. The `AssemblyInfo.cs` file defines standard .NET assembly attributes including versioning, copyright, and COM visibility settings. The `Annotations.cs` file contains a comprehensive set of custom attributes (sourced from JetBrains under MIT license) that enable enhanced static code analysis, nullability checking, and IDE assistance within the `DTS.Viewer.Graph.Annotations` namespace. These annotations have no runtime behavior but improve developer experience through compile-time hints and warnings. ## 2. Public Interface ### AssemblyInfo.cs - Assembly Attributes | Attribute | Value | |-----------|-------| | `AssemblyTitle` | "Graph" | | `AssemblyDescription` | "" (empty) | | `AssemblyCompany` | "" (empty) | | `AssemblyProduct` | "Graph" | | `AssemblyCopyright` | "Copyright © 2017" | | `ComVisible` | `false` | | `Guid` | "61261c58-c32e-4dea-a87a-d7f956f28b4d" | | `AssemblyVersion` | "1.0.0.0" | | `AssemblyFileVersion` | "1.0.0.0" | ### Annotations.cs - Nullability Attributes - **`CanBeNullAttribute`** - Indicates the marked element's value may be `null`. Applicable to methods, parameters, properties, delegates, fields, events, classes, interfaces, and generic parameters. - **`NotNullAttribute`** - Indicates the marked element's value will never be `null`. Same applicability as `CanBeNullAttribute`. - **`ItemNotNullAttribute`** - For `IEnumerable`, `Task`, or `Lazy` types, indicates collection items, `Task.Result`, or `Lazy.Value` are never `null`. - **`ItemCanBeNullAttribute`** - For `IEnumerable`, `Task`, or `Lazy` types, indicates collection items, `Task.Result`, or `Lazy.Value` may be `null`. ### Annotations.cs - String Formatting Attributes - **`StringFormatMethodAttribute(string formatParameterName)`** - Marks a method as using a format string pattern. Constructor takes the parameter name containing the format string. - **`ValueProviderAttribute(string name)`** - Indicates a parameter accepts values from a limited set. Constructor takes the provider name. ### Annotations.cs - Property Change Notification - **`NotifyPropertyChangedInvocatorAttribute`** - Marks methods used to notify property changes in `INotifyPropertyChanged` implementations. Optional constructor takes `parameterName` (string). ### Annotations.cs - Contract Annotations - **`ContractAnnotationAttribute(string contract, bool forceFullStates = false)`** - Describes method input/output dependencies using Function Definition Table syntax. Properties: `Contract` (string), `ForceFullStates` (bool). ### Annotations.cs - Usage Annotations - **`UsedImplicitlyAttribute`** - Marks symbols used implicitly (reflection, external libraries). Constructors accept `ImplicitUseKindFlags` and/or `ImplicitUseTargetFlags`. - **`MeansImplicitUseAttribute`** - Applied to attributes to prevent marking decorated symbols as unused. - **`PublicAPIAttribute`** - Marks publicly available API that should not be removed. Optional constructor takes `comment` (string). ### Annotations.cs - Method Behavior Attributes - **`PureAttribute`** - Indicates a method makes no observable state changes. - **`MustUseReturnValueAttribute`** - Indicates the return value must be used. Optional constructor takes `justification` (string). - **`InstantHandleAttribute`** - Indicates a parameter is fully handled during method execution (delegates executed, enumerables enumerated). - **`LinqTunnelAttribute`** - Marks pure LINQ methods with postponed enumeration. - **`NoEnumerationAttribute`** - Indicates an `IEnumerable` parameter is not enumerated. - **`TerminatesProgramAttribute`** - **[Obsolete]** Use `[ContractAnnotation("=> halt")]` instead. ### Annotations.cs - Assertion Attributes - **`AssertionMethodAttribute`** - Marks a method as an assertion method. - **`AssertionConditionAttribute(AssertionConditionType conditionType)`** - Marks the condition parameter of an assertion method. - **`AssertionConditionType`** (enum) - Values: `IS_TRUE` (0), `IS_FALSE` (1), `IS_NULL` (2), `IS_NOT_NULL` (3). ### Annotations.cs - Collection Attributes - **`CollectionAccessAttribute(CollectionAccessType collectionAccessType)`** - Describes how a method affects collection content. - **`CollectionAccessType`** (flags enum) - Values: `None` (0), `Read` (1), `ModifyExistingContent` (2), `UpdatedContent` (6). ### Annotations.cs - Implicit Use Enums - **`ImplicitUseKindFlags`** (flags enum) - Values: `Default`, `Access` (1), `Assign` (2), `InstantiatedWithFixedConstructorSignature` (4), `InstantiatedNoFixedConstructorSignature` (8). - **`ImplicitUseTargetFlags`** (flags enum) - Values: `Default`, `Itself` (1), `Members` (2), `WithMembers` (3). ### Annotations.cs - ASP.NET MVC Attributes - **`AspMvcActionAttribute`** - Marks MVC action parameters/methods. Optional constructor takes `anonymousProperty` (string). - **`AspMvcAreaAttribute`** - Marks MVC area parameters. - **`AspMvcControllerAttribute`** - Marks MVC controller parameters/methods. - **`AspMvcMasterAttribute`** - Marks MVC Master parameters. - **`AspMvcModelTypeAttribute`** - Marks MVC model type parameters. - **`AspMvcPartialViewAttribute`** - Marks MVC partial view parameters/methods. - **`AspMvcViewAttribute`** - Marks MVC view component parameters/methods. - **`AspMvcViewComponentAttribute`** - Marks MVC view component name parameters. - **`AspMvcViewComponentViewAttribute`** - Marks MVC view component view parameters/methods. - **`AspMvcActionSelectorAttribute`** - Marks MVC action name parameters in attributes. - **`AspMvcSuppressViewErrorAttribute`** - Disables MVC view inspections for a class/method. - **`AspMvcDisplayTemplateAttribute`** - Marks MVC display template parameters. - **`AspMvcEditorTemplateAttribute`** - Marks MVC editor template parameters. - **`AspMvcTemplateAttribute`** - Marks MVC template parameters. ### Annotations.cs - ASP.NET MVC Location Format Attributes - **`AspMvcAreaMasterLocationFormatAttribute(string format)`** - **`AspMvcAreaPartialViewLocationFormatAttribute(string format)`** - **`AspMvcAreaViewLocationFormatAttribute(string format)`** - **`AspMvcMasterLocationFormatAttribute(string format)`** - **`AspMvcPartialViewLocationFormatAttribute(string format)`** - **`AspMvcViewLocationFormatAttribute(string format)`** ### Annotations.cs - ASP.NET Control Attributes - **`AspChildControlTypeAttribute(string tagName, Type controlType)`** - **`AspDataFieldAttribute`** - **`AspDataFieldsAttribute`** - **`AspMethodPropertyAttribute`** - **`AspRequiredAttributeAttribute(string attribute)`** - **`AspTypePropertyAttribute(bool createConstructorReferences)`** ### Annotations.cs - Razor Attributes - **`RazorSectionAttribute`** - Marks Razor section parameters/methods. - **`RazorImportNamespaceAttribute(string name)`** - Assembly-level, multiple allowed. - **`RazorInjectionAttribute(string type, string fieldName)`** - Assembly-level, multiple allowed. - **`RazorDirectiveAttribute(string directive)`** - Assembly-level, multiple allowed. - **`RazorHelperCommonAttribute`** - Method-level. - **`RazorLayoutAttribute`** - Property-level. - **`RazorWriteLiteralMethodAttribute`** - Method-level. - **`RazorWriteMethodAttribute`** - Method-level. - **`RazorWriteMethodParameterAttribute`** - Parameter-level. ### Annotations.cs - HTML Attributes - **`HtmlElementAttributesAttribute`** - Optional constructor takes `name` (string). - **`HtmlAttributeValueAttribute(string name)`** ### Annotations.cs - XAML Attributes - **`XamlItemsControlAttribute`** - Marks types with `ItemsSource` property. - **`XamlItemBindingOfItemsControlAttribute`** - Marks `BindingBase`-derived properties. ### Annotations.cs - Other Attributes - **`LocalizationRequiredAttribute(bool required = true)`** - Indicates localization requirements. - **`CannotApplyEqualityOperatorAttribute`** - Disallows `==`/`!=` operators (except with `null`). - **`BaseTypeRequiredAttribute(Type baseType)`** - Applied to attributes to require implementers to inherit/implement a type. - **`ProvidesContextAttribute`** - Indicates a context value provider. - **`PathReferenceAttribute`** - Marks file/folder path parameters. Optional constructor takes `basePath` (string). - **`SourceTemplateAttribute`** - Marks extension methods as source templates. - **`MacroAttribute`** - Specifies macros for source template parameters. Properties: `Expression` (string), `Editable` (int), `Target` (string). - **`RegexPatternAttribute`** - Marks regex pattern parameters. - **`NoReorderAttribute`** - Prevents member reordering in the marked type. ## 3. Invariants - **Assembly Versioning**: Both `AssemblyVersion` and `AssemblyFileVersion` are fixed at "1.0.0.0". - **COM Visibility**: `ComVisible` is `false`, making types invisible to COM components by default. - **Namespace Consistency**: All annotation attributes reside in `DTS.Viewer.Graph.Annotations` namespace. - **Attribute Usage Constraints**: Each attribute has specific `AttributeUsage` constraints defining valid targets (method, parameter, property, etc.). - **License Requirement**: The `Annotations.cs` file is MIT licensed from JetBrains; the copyright notice must be preserved in copies. ## 4. Dependencies ### Imports (AssemblyInfo.cs) - `System.Reflection` - `System.Runtime.CompilerServices` - `System.Runtime.InteropServices` ### Imports (Annotations.cs) - `System` ### Downstream Dependencies - **Unclear from source alone** - The annotation attributes are designed for consumption by JetBrains ReSharper and Rider IDEs. The `DTS.Viewer.Graph` assembly likely contains graph-related functionality used by other modules in the DTS Viewer application, but the actual consumers cannot be determined from these files alone. ## 5. Gotchas - **`TerminatesProgramAttribute` is Obsolete**: This attribute is marked `[Obsolete]` with guidance to use `[ContractAnnotation("=> halt")]` instead. New code should not use it. - **Annotations are Compile-Time Only**: All attributes in `Annotations.cs` are for static analysis only. They have no runtime behavior and will not affect execution. - **Pragma Warnings Disabled**: The `Annotations.cs` file disables warning 1591 (missing XML documentation) and includes multiple ReSharper directive disables at the file level. - **Empty Assembly Metadata**: Several assembly attributes (`AssemblyDescription`, `AssemblyConfiguration`, `AssemblyCompany`) are empty strings, which may indicate incomplete configuration. - **Hardcoded Copyright Year**: The copyright is hardcoded to 2017; this may need updating for newer releases.