• Basics
  • Abyss
  • Web APIs
  • C# & Razor
  • .net API
  • JS & TS API

    Show / Hide Table of Contents

    Class DynamicCode

    This is a base class for dynamic code which is compiled at runtime.
    It delegates all properties like App and methods like AsDynamic() to the parent item which initially caused it to be compiled.

    Inheritance
    System.Object
    ToSic.Lib.Services.ServiceBase
    ToSic.Sxc.Services.ServiceForDynamicCode
    DynamicCode
    Code14<TModel, TServiceKit>
    DynamicCode12
    DynamicCode
    Implements
    IHasCodeLog
    IDynamicCode
    ICreateInstance
    IHasLog
    Namespace: ToSic.Sxc.Code
    Assembly: ToSic.Sxc.dll
    Syntax
    [PublicApi_Stable_ForUseInYourCode]
    public abstract class DynamicCode : ServiceForDynamicCode, IHasCodeLog, IDynamicCode, ICreateInstance, ICompatibilityLevel, IHasLog, IWrapper<IDynamicCode>, IHasDynamicCodeRoot, INeedsDynamicCodeRoot

    Constructors

    | Improve this Doc View Source

    DynamicCode()

    Main constructor, may never have parameters, otherwise inheriting code will run into problems.

    Declaration
    protected DynamicCode()

    Properties

    | Improve this Doc View Source

    App

    A fully prepared IApp object letting you access all the data and queries in the current app.

    Declaration
    public IApp App { get; }
    Property Value
    Type Description
    IApp

    The current app

    | Improve this Doc View Source

    CmsContext

    The CmsContext tells you about the environment, like what page and module we're running in. It's supposed to replace the Dnn object in Razor and WebAPI code.

    Declaration
    public ICmsContext CmsContext { get; }
    Property Value
    Type Description
    ICmsContext
    Remarks

    New in v11.11

    | Improve this Doc View Source

    Content

    The content object of the current razor view - IF the current view has content. If the view is a list, it will return the first item. Will be null otherwise. To tell if it's the demo/default item, use IsDemoItem.

    Declaration
    public dynamic Content { get; }
    Property Value
    Type Description
    System.Object

    A IDynamicEntity object with the current content - or null.

    | Improve this Doc View Source

    CreateInstancePath

    Location of the current code. This is important when trying to create instances for other code in relative folders - as this is usually not known.

    Declaration
    public string CreateInstancePath { get; set; }
    Property Value
    Type Description
    System.String

    The real path to the currently executed code - important for dynamically compiled code like WebApis

    | Improve this Doc View Source

    Data

    The data prepared for the current Code. Usually user data which was manually added to the instance, but can also be a query.

    Declaration
    public IBlockDataSource Data { get; }
    Property Value
    Type Description
    IBlockDataSource

    An IBlockDataSource which is as IDataSource.

    | Improve this Doc View Source

    Edit

    Helper commands to enable in-page editing functionality Use it to check if edit is enabled, generate context-json infos and provide toolbar buttons

    Declaration
    public IEditService Edit { get; }
    Property Value
    Type Description
    IEditService

    An IEditService object.

    | Improve this Doc View Source

    Header

    The header object of the current razor view, if it's a list and has a header object. If it's a list and doesn't have a header (and no default), it will return null. To tell if it's the demo/default item, use IsDemoItem.

    Declaration
    public dynamic Header { get; }
    Property Value
    Type Description
    System.Object

    A IDynamicEntity object with the current content.

    Remarks

    Introduced in 2sxc 10.10 - previously it was called ListContent, now deprecated.

    | Improve this Doc View Source

    Link

    Link helper object to create the correct links

    Declaration
    public ILinkService Link { get; }
    Property Value
    Type Description
    ILinkService

    A ILinkService object.

    | Improve this Doc View Source

    Log

    Declaration
    public ICodeLog Log { get; }
    Property Value
    Type Description
    ICodeLog

    Methods

    | Improve this Doc View Source

    AsAdam(IEntity, String)

    Provides an Adam instance for this item and field

    Declaration
    public IFolder AsAdam(IEntity entity, string fieldName)
    Parameters
    Type Name Description
    IEntity entity

    The entity, often Content or similar

    System.String fieldName

    The field name, like "Gallery" or "Pics"

    Returns
    Type Description
    IFolder

    An Adam object for navigating the assets

    | Improve this Doc View Source

    AsAdam(IDynamicEntity, String)

    Provides an Adam instance for this item and field

    Declaration
    public IFolder AsAdam(IDynamicEntity entity, string fieldName)
    Parameters
    Type Name Description
    IDynamicEntity entity

    The entity, often Content or similar

    System.String fieldName

    The field name, like "Gallery" or "Pics"

    Returns
    Type Description
    IFolder

    An Adam object for navigating the assets

    | Improve this Doc View Source

    AsDynamic(Object)

    Convert a dynamic entity and return itself again. This is so coders don't have to worry if the original object was an IEntity or a IDynamicEntity in the first place.

    Declaration
    public dynamic AsDynamic(object dynamicEntity)
    Parameters
    Type Name Description
    System.Object dynamicEntity

    the original object

    Returns
    Type Description
    System.Object

    a dynamic object for easier coding

    | Improve this Doc View Source

    AsDynamic(Object[])

    Declaration
    public dynamic AsDynamic(params object[] entities)
    Parameters
    Type Name Description
    System.Object[] entities
    Returns
    Type Description
    System.Object
    | Improve this Doc View Source

    AsDynamic(String, String)

    Take a json and provide it as a dynamic object to the code

    Declaration
    public dynamic AsDynamic(string json, string fallback = "{}")
    Parameters
    Type Name Description
    System.String json

    the original json string

    System.String fallback

    Alternate string to use, if the original json can't parse. Can also be null or the word "error" if you would prefer an error to be thrown.

    Returns
    Type Description
    System.Object

    A dynamic object representing the original json. If it can't be parsed, it will parse the fallback, which by default is an empty empty dynamic object. If you provide null for the fallback, then you will get null back.

    Remarks

    Added in 2sxc 10.22.00

    | Improve this Doc View Source

    AsDynamic(IEntity)

    Wraps an entity into a IDynamicEntity

    Declaration
    public dynamic AsDynamic(IEntity entity)
    Parameters
    Type Name Description
    IEntity entity

    the original object

    Returns
    Type Description
    System.Object

    a dynamic object for easier coding

    | Improve this Doc View Source

    AsEntity(Object)

    Unwraps a dynamic entity back into the underlying IEntity

    Declaration
    public IEntity AsEntity(object dynamicEntity)
    Parameters
    Type Name Description
    System.Object dynamicEntity

    the wrapped IEntity

    Returns
    Type Description
    IEntity

    A normal IEntity

    | Improve this Doc View Source

    AsList(Object)

    Converts a list of IEntity objects into a list of IDynamicEntity objects.

    Declaration
    public IEnumerable<dynamic> AsList(object list)
    Parameters
    Type Name Description
    System.Object list

    typically a List/IEnumerable of Entities or DynamicEntities.
    Can also be a IDataSource in which case it uses the default stream.

    Returns
    Type Description
    System.Collections.Generic.IEnumerable<System.Object>

    a list of IDynamicEntity objects

    Remarks

    Added in 2sxc 10.21.00

    | Improve this Doc View Source

    CreateInstance(String, String, String, String, Boolean)

    Create an instance of code lying in a file near this

    Declaration
    public dynamic CreateInstance(string virtualPath, string noParamOrder = "Params must be named (https://r.2sxc.org/named-params)", string name = null, string relativePath = null, bool throwOnError = true)
    Parameters
    Type Name Description
    System.String virtualPath

    path to the other code file to compile

    System.String noParamOrder

    see Convention: Named Parameters

    System.String name

    Override the class name to compile - usually not required as it should match the file name

    System.String relativePath

    optional relative path, will usually use the CreateInstancePath

    System.Boolean throwOnError

    throw errors if compiling fails, recommended

    Returns
    Type Description
    System.Object

    An object of the class in the file

    Remarks

    Note that the C# code which we are creating an instance of inherits from DynamicCode then it will automatically be initialized to support App, AsDynamic etc.

    | Improve this Doc View Source

    CreateSource<T>(IDataSource, Object)

    Create a IDataSource which will process data from the given stream.

    Declaration
    public T CreateSource<T>(IDataSource source = null, object options = null)
        where T : IDataSource
    Parameters
    Type Name Description
    IDataSource source

    The data source which will be the default In of the new data-source.

    System.Object options

    An alternate configuration provider for the DataSource

    Returns
    Type Description
    T

    A typed DataSource object

    Type Parameters
    Name Description
    T

    A data-source type - must be inherited from IDataSource

    | Improve this Doc View Source

    CreateSource<T>(IDataStream)

    Create a IDataSource which will process data from the given stream.

    Declaration
    public T CreateSource<T>(IDataStream source)
        where T : IDataSource
    Parameters
    Type Name Description
    IDataStream source

    The stream which will be the default In of the new data-source.

    Returns
    Type Description
    T

    A typed DataSource object

    Type Parameters
    Name Description
    T

    A data-source type - must be inherited from IDataSource

    | Improve this Doc View Source

    GetService<TService>()

    Get a service from the EAV / 2sxc Dependency Injection.

    Declaration
    public TService GetService<TService>()
    Returns
    Type Description
    TService

    An object of the type or interface requested

    Type Parameters
    Name Description
    TService

    Interface (preferred) or Class which is needed

    Remarks

    Added in 2sxc 11.11

    Implements

    IHasCodeLog
    IDynamicCode
    ICreateInstance
    IHasLog
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX