Class CsMember
Data model that builds the base class definition for all member types.
Implements
Inherited Members
Namespace: CodeFactory.WinVs.Models.CSharp
Assembly: CodeFactory.WinVs.dll
Syntax
public abstract class CsMember : CsModel, ICsMember, ICsModel, IModelStatus, ISourceFiles, ICsAttributes, IDocumentation, IParent, ILookup
Constructors
CsMember(bool, bool, bool, SourceCodeType, CsModelType, IReadOnlyList<CsAttribute>, string, IReadOnlyList<string>, bool, string, string, string, string, CsSecurity, CsMemberType, string, ModelStore<ICsModel>, IReadOnlyList<ModelLoadException>)
Constructor for the CsMember
Declaration
protected CsMember(bool isLoaded, bool hasErrors, bool loadedFromSource, SourceCodeType language, CsModelType modelType, IReadOnlyList<CsAttribute> attributes, string modelSourceFile, IReadOnlyList<string> sourceFiles, bool hasDocumentation, string documentation, string lookupPath, string name, string parentPath, CsSecurity security, CsMemberType memberType, string sourceDocument = null, ModelStore<ICsModel> modelStore = null, IReadOnlyList<ModelLoadException> modelErrors = null)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | isLoaded | Flag that determines if the model was loaded. |
| bool | hasErrors | Flag that determine if errors were found creating the model. |
| bool | loadedFromSource | Flag that determines if the model was loaded from source code or from an existing library. |
| SourceCodeType | language | The target language the model was generated from. |
| CsModelType | modelType | The type of model that represents this member. |
| IReadOnlyList<CsAttribute> | attributes | List of the attributes assigned to this model. |
| string | modelSourceFile | The source code file the model was generated from. |
| IReadOnlyList<string> | sourceFiles | List of the fully qualified paths to the source code files this member is defined in. |
| bool | hasDocumentation | Flag that determines if the model has XML documentation assigned to it. |
| string | documentation | The xml documentation assigned to the model. |
| string | lookupPath | The fully qualified model lookup path for this model. |
| string | name | The name of the model. |
| string | parentPath | THe fully qualified lookup path for the parent model to this one. |
| CsSecurity | security | The security scope assigned to this model. |
| CsMemberType | memberType | The type of member this model represents. |
| string | sourceDocument | The source document that was used to build this model. This is optional parameter and can be null. |
| ModelStore<ICsModel> | modelStore | Optional the lookup storage for models created during the compile or lookup of the model. |
| IReadOnlyList<ModelLoadException> | modelErrors | Optional the error that occurred while creating the model. |
Properties
Attributes
The attributes assigned to this item. If the HasAttributes is false this will be an empty list.
Declaration
public IReadOnlyList<CsAttribute> Attributes { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<CsAttribute> |
Documentation
Documentation that has been assigned to this model.
Declaration
public string Documentation { get; }
Property Value
| Type | Description |
|---|---|
| string |
HasAttributes
Flag that determines if attributes are assigned.
Declaration
public bool HasAttributes { get; }
Property Value
| Type | Description |
|---|---|
| bool |
HasDocumentation
Flag that determines if the model has code level documentation assigned to it.
Declaration
public bool HasDocumentation { get; }
Property Value
| Type | Description |
|---|---|
| bool |
LookupPath
The fully qualified path for this model that can be used when searching the source for the model.
Declaration
public string LookupPath { get; }
Property Value
| Type | Description |
|---|---|
| string |
MemberType
The type of member the model is.
Declaration
public CsMemberType MemberType { get; }
Property Value
| Type | Description |
|---|---|
| CsMemberType |
ModelSourceFile
If this model was loaded from source code, then this will contain the target file definition was loaded from. This will be null if not loaded from source.
Declaration
public string ModelSourceFile { get; }
Property Value
| Type | Description |
|---|---|
| string |
Name
The name assigned to the member.
Declaration
public string Name { get; }
Property Value
| Type | Description |
|---|---|
| string |
Parent
The parent to the current model. This will return null if there is no parent for this model, or the parent could not be located.
Declaration
public CsModel Parent { get; }
Property Value
| Type | Description |
|---|---|
| CsModel |
Security
The security scope that has been assigned to the member.
Declaration
public CsSecurity Security { get; }
Property Value
| Type | Description |
|---|---|
| CsSecurity |
SourceFiles
The source file or files in which the model was loaded from. This will be an empty enumeration if the source models were loaded from metadata only.
Declaration
public IReadOnlyList<string> SourceFiles { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<string> |
Methods
AddAfterAsync(string)
Adds the source code directly after the definition of the ICsMemberin the target document.
Declaration
public abstract Task<CsSource> AddAfterAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that is to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
AddAfterAsync(string, string)
Adds the source code directly after the definition of the ICsMemberin the target document.
Declaration
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.", false)]
public abstract Task<CsSource> AddAfterAsync(string sourceDocument, string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the source code document to be updated. |
| string | sourceCode | The source code that is to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
AddAfterDocsAsync(string)
Adds the supplied source code directly after the documentation.
Declaration
public abstract Task<CsSource> AddAfterDocsAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The target syntax to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | Updated CsSource model with the injected source code. |
AddBeforeAsync(string)
Adds the source code directly before the definition of the ICsMemberin the target document.
Declaration
public abstract Task<CsSource> AddBeforeAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that is to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
AddBeforeAsync(string, bool)
Adds the source code directly before the definition of the ICsMemberin the target document.
Declaration
public abstract Task<CsSource> AddBeforeAsync(string sourceCode, bool ignoreLeadingModelsAndDocs)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that is to be added to the document. |
| bool | ignoreLeadingModelsAndDocs | Changes the before entry point to the start of the member definition not before the documentation or attributes that are assigned to the member. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
AddBeforeAsync(string, string)
Adds the source code directly before the definition of the ICsMemberin the target document.
Declaration
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.", false)]
public abstract Task<CsSource> AddBeforeAsync(string sourceDocument, string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the source code document to be updated. |
| string | sourceCode | The source code that is to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
AddBeforeDocsAsync(string)
Adds the supplied source code directly before the documentation.
Declaration
public abstract Task<CsSource> AddBeforeDocsAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The target syntax to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | Updated CsSource model with the injected source code. |
CommentOutSyntaxAsync(string)
Comments out the member hosting syntax.
Declaration
public abstract Task<CsSource> CommentOutSyntaxAsync(string commentSyntax = "//")
Parameters
| Type | Name | Description |
|---|---|---|
| string | commentSyntax | Optional parameter that sets the syntax used to comment out the member defaults to '//' |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the CsSource model after the member has been commented out. This will return the current instance if the model was not loaded from source. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
DeleteAsync()
Deletes the definition of the member from the source document.
Declaration
public abstract Task<CsSource> DeleteAsync()
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the member has been removed from the document. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
DeleteAsync(string)
Deletes the definition of the member from the source document.
Declaration
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.", false)]
public abstract Task<CsSource> DeleteAsync(string sourceDocument)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The source document that the member is to be removed from. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the member has been removed from the document. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
DeleteDocsAsync()
Deletes the documentation from the target supporting code artifact.
Declaration
public abstract Task<CsSource> DeleteDocsAsync()
Returns
| Type | Description |
|---|---|
| Task<CsSource> | Updated CsSource model with the documentation removed. |
GetMemberSyntaxAsync()
Gets the syntax that defined the member model.
Declaration
public abstract Task<string> GetMemberSyntaxAsync()
Returns
| Type | Description |
|---|---|
| Task<string> | The syntax that makes up the member or null if the syntax cannot be loaded. This will be null if the model was not loaded from source code. |
GetSourceLocationAsync()
Gets the starting and ending locations within the document where the member is located.
Declaration
public abstract Task<ISourceLocation> GetSourceLocationAsync()
Returns
| Type | Description |
|---|---|
| Task<ISourceLocation> | The source location for the member. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Raised when an error occurs getting the location from the document. |
GetSourceLocationAsync(string)
Gets the starting and ending locations within the document where the member is located.
Declaration
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.", false)]
public abstract Task<ISourceLocation> GetSourceLocationAsync(string sourceDocument)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the document that has the member defined in. |
Returns
| Type | Description |
|---|---|
| Task<ISourceLocation> | The source location for the member. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Raised when an error occurs getting the location from the document. |
ReplaceAsync(string)
Replaces the current member with the provided source code.
Declaration
public abstract Task<CsSource> ReplaceAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that is to be used to replace the original definition in the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
ReplaceAsync(string, string)
Replaces the current member with the provided source code.
Declaration
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.", false)]
public abstract Task<CsSource> ReplaceAsync(string sourceDocument, string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the source code document to be updated. |
| string | sourceCode | The source code that is to be used to replace the original definition in the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | A newly loaded copy of the ICsSource model after the changes have been applied. |
Exceptions
| Type | Condition |
|---|---|
| DocumentException | Error is raised when errors occur updating the source document. |
ReplaceDocsAsync(string)
Replaces the supplied source code directly this the documentation.
Declaration
public abstract Task<CsSource> ReplaceDocsAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The target syntax to be added to the document. |
Returns
| Type | Description |
|---|---|
| Task<CsSource> | Updated CsSource model with the injected source code. |