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. |