Class CsMethod
Data model that represents a method definition.
Implements
Inherited Members
Namespace: CodeFactory.WinVs.Models.CSharp
Assembly: CodeFactory.WinVs.dll
Syntax
public abstract class CsMethod : CsMember, ICsMethod, ICsMember, ICsModel, IModelStatus, ISourceFiles, ICsAttributes, IDocumentation, IParent, ILookup, ICsGeneric
Constructors
CsMethod(bool, bool, bool, SourceCodeType, IReadOnlyList<CsAttribute>, string, IReadOnlyList<string>, bool, string, string, string, string, CsSecurity, bool, bool, IReadOnlyList<CsGenericParameter>, IReadOnlyList<CsType>, bool, bool, bool, bool, bool, bool, bool, bool, bool, CsMethodType, CsType, IReadOnlyList<CsParameter>, SyntaxType, string, ModelStore<ICsModel>, IReadOnlyList<ModelLoadException>)
Constructor for the CsMethod
Declaration
protected CsMethod(bool isLoaded, bool hasErrors, bool loadedFromSource, SourceCodeType language, IReadOnlyList<CsAttribute> attributes, string modelSourceFile, IReadOnlyList<string> sourceFiles, bool hasDocumentation, string documentation, string lookupPath, string name, string parentPath, CsSecurity security, bool isGeneric, bool hasStrongTypesInGenerics, IReadOnlyList<CsGenericParameter> genericParameters, IReadOnlyList<CsType> genericTypes, bool hasParameters, bool isAbstract, bool isVirtual, bool isSealed, bool isOverride, bool isStatic, bool isVoid, bool isAsync, bool isExtension, CsMethodType methodType, CsType returnType, IReadOnlyList<CsParameter> parameters, SyntaxType contentSyntax = SyntaxType.Unknown, 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. |
| IReadOnlyList<CsAttribute> | attributes | List of the attributes assigned to this model. |
| string | modelSourceFile | Source 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. |
| bool | isGeneric | Flag that determines if the method is a generic definition. |
| bool | hasStrongTypesInGenerics | Flag that determines if the generics use strong type definitions. |
| IReadOnlyList<CsGenericParameter> | genericParameters | Generic parameters assigned to the method. |
| IReadOnlyList<CsType> | genericTypes | Target types for the generic parameters assigned to the method. |
| bool | hasParameters | Flag that determines if the method had parameters. |
| bool | isAbstract | Flag that determines if the model is abstract. |
| bool | isVirtual | Flag that determines if the model is virtual. |
| bool | isSealed | Flag that determines if the model is sealed. |
| bool | isOverride | Flag that determines if the model is overridden. |
| bool | isStatic | Flag that determines if the model is static. |
| bool | isVoid | Flag that determines if the return type is void. |
| bool | isAsync | Flag that determines if the method has the async keyword assigned. |
| bool | isExtension | Flag that determines if the method is an extension method. |
| CsMethodType | methodType | The type of method that was implemented. |
| CsType | returnType | The type definition for the return type. |
| IReadOnlyList<CsParameter> | parameters | The parameters assigned to the method. |
| SyntaxType | contentSyntax | How syntax is stored in the method. |
| 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
GenericParameters
List of the generic parameters assigned.
Declaration
public IReadOnlyList<CsGenericParameter> GenericParameters { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<CsGenericParameter> |
GenericTypes
List of the strong types that are implemented for each generic parameter. This will be an empty List when there is no generic types implemented.
Declaration
public IReadOnlyList<CsType> GenericTypes { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<CsType> |
HasParameters
Flag that determines if the method has parameters assigned to it.
Declaration
public bool HasParameters { get; }
Property Value
| Type | Description |
|---|---|
| bool |
HasStrongTypesInGenerics
Flag that determines if the generics implementation has strong types passed in to the generics implementation.
Declaration
public bool HasStrongTypesInGenerics { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsAbstract
Flag that determines if the method has been implemented as abstract.
Declaration
public bool IsAbstract { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsAsync
Flag that determines if the method implements the Async keyword.
Declaration
public bool IsAsync { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsExtension
Flag that determines if the method is an extension method.
Declaration
public bool IsExtension { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsGeneric
Flag the determines if this item supports generics
Declaration
public bool IsGeneric { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsOverride
Flag that determines if the method has been overridden.
Declaration
public bool IsOverride { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsSealed
Flag that determines if the method has been sealed.
Declaration
public bool IsSealed { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsStatic
Flag that determines if this is a static method.
Declaration
public bool IsStatic { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsVirtual
Flag that determines if the method has been implemented as virtual.
Declaration
public bool IsVirtual { get; }
Property Value
| Type | Description |
|---|---|
| bool |
IsVoid
Flag that determines if the methods return type is void.
Declaration
public bool IsVoid { get; }
Property Value
| Type | Description |
|---|---|
| bool |
MethodType
Determines the type of method that was loaded into this model.
Declaration
public CsMethodType MethodType { get; }
Property Value
| Type | Description |
|---|---|
| CsMethodType |
Parameters
Enumeration of the parameters that have been assigned to the method. If HasParameters property is set to false this will be null.
Declaration
public IReadOnlyList<CsParameter> Parameters { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<CsParameter> |
ReturnType
The type information about the return type assigned to the method. if flag IsVoid is true then the return type will be set to null.
Declaration
public CsType ReturnType { get; }
Property Value
| Type | Description |
|---|---|
| CsType |
SyntaxContent
Determines how the internal syntax for the method is stored.
Declaration
public SyntaxType SyntaxContent { get; }
Property Value
| Type | Description |
|---|---|
| SyntaxType |
Methods
AddToBeginningBodySyntaxAsync(string)
Adds the source code to the beginning of the method body. The ContentSyntax must be set to Body or else an exception will be thrown.
Declaration
public abstract Task<CsSource> AddToBeginningBodySyntaxAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that is to be added to the method body. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
AddToBeginningBodySyntaxAsync(string, string)
Adds the source code to the beginning of the method body. The ContentSyntax must be set to Body or else an exception will be thrown.
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> AddToBeginningBodySyntaxAsync(string sourceDocument, string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the source document to be updated. |
| string | sourceCode | The source code that is to be added to the method body. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
AddToEndBodySyntaxAsync(string)
Adds the source code to the end of the method body. The ContentSyntax must be set to Body or else an exception will be thrown.
Declaration
public abstract Task<CsSource> AddToEndBodySyntaxAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that is to be added to the method body. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
AddToEndBodySyntaxAsync(string, string)
Adds the source code to the end of the method body. The ContentSyntax must be set to Body or else an exception will be thrown.
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> AddToEndBodySyntaxAsync(string sourceDocument, string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the source document to be updated. |
| string | sourceCode | The source code that is to be added to the method body. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
DeleteBodySyntaxAsync()
Deletes the source syntax from the method body. The ContentSyntax must be set to Body or else an exception will be thrown.
Declaration
public abstract Task<CsSource> DeleteBodySyntaxAsync()
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
DeleteBodySyntaxAsync(string)
Deletes the source syntax from the method body. The ContentSyntax must be set to Body or else an exception will be thrown.
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> DeleteBodySyntaxAsync(string sourceDocument)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceDocument | The fully qualified path to the source code document to be updated. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
GetBodySyntaxAsync()
The source code syntax that is stored in the body of the method. This will be null if the method was not loaded from source code or the SyntaxContent is not set to Body.
Declaration
public abstract Task<string> GetBodySyntaxAsync()
Returns
| Type | Description |
|---|---|
| Task<string> |
GetBodySyntaxListAsync()
The source code syntax that is stored in the body of the method. This will be null if the method was not loaded from source code or the SyntaxContent is not set to Body. This will return each line of code that has a line feed or return as a separate string.
Declaration
public abstract Task<List<string>> GetBodySyntaxListAsync()
Returns
| Type | Description |
|---|---|
| Task<List<string>> |
GetExpressionSyntaxAsync()
Gets the expression that has been assigned to the method. This will be null if the method was not loaded from source code or the SyntaxContent is not set to Expression.
Declaration
public abstract Task<string> GetExpressionSyntaxAsync()
Returns
| Type | Description |
|---|---|
| Task<string> |
ReplaceBodySyntaxAsync(string)
Replaces the syntax in the body of the method. The ContentSyntax must be set to Body or else an exception will be thrown.
Declaration
public abstract Task<CsSource> ReplaceBodySyntaxAsync(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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
ReplaceBodySyntaxAsync(string, string)
Replaces the syntax in the body of the method. The ContentSyntax must be set to Body or else an exception will be thrown.
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> ReplaceBodySyntaxAsync(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 body of the method. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
ReplaceExpressionAsync(string)
Replaces the expression assigned to the method with the provided source code. The ContentSyntax must be set to Expression or else an exception will be thrown.
Declaration
public abstract Task<CsSource> ReplaceExpressionAsync(string sourceCode)
Parameters
| Type | Name | Description |
|---|---|---|
| string | sourceCode | The source code that will replace the original expression. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |
ReplaceExpressionAsync(string, string)
Replaces the expression assigned to the method with the provided source code. The ContentSyntax must be set to Expression or else an exception will be thrown.
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> ReplaceExpressionAsync(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 will replace the original expression. |
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. |
| CodeFactoryException | Error is raised if the incorrect ContentSyntax is present. |