Files
DP44/docs/ai/DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Graph/Properties.md
2026-04-17 14:55:32 -04:00

11 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Graph/Properties/AssemblyInfo.cs
DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.Graph/Properties/Annotations.cs
2026-04-17T15:56:49.185438+00:00 zai-org/GLM-5-FP8 1 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.