Per Nergård (MVP)
+2
Jul 20, 2014
visibility 4852
star star star star star star
(3 votes)

CMS7 programmatically create dynamic property

Haven’t used dynamic properties in a long while, but yesterday when building an external module I thought that a dynamic content reference property would be perfect for my needs.

But I wanted to create it programmatically so the deployment would only be copying of files.

I only found a blog post for CMS6. Lucky for me it wasn’t to much that differed. CMS7 code below:

private void SetupDynamicProperty()
{
  var TabDefinitionRepository = ServiceLocator.Current.GetInstance<ITabDefinitionRepository>();
  var PropertyDefinitionTypeRepository = ServiceLocator.Current.GetInstance<IPropertyDefinitionTypeRepository>();
  var PropertyDefinitionRepository = ServiceLocator.Current.GetInstance<IPropertyDefinitionRepository>();
  try
  {
    PropertyDefinition pd = new PropertyDefinition();
    pd.ContentTypeID = 0; // 0 == Dynamic property
    pd.Name = "YourPropertyName;
    pd.EditCaption = "HandbookStartPage";
    pd.Type = PropertyDefinitionTypeRepository.Load(4); // 4 == PageReference
    propertyDefinitionRepository.Save(pd);
  }
  catch { }
}
Jul 20, 2014

Comments

Oskar Zetterberg
Oskar Zetterberg Jul 29, 2014 10:14 AM

For people wanting the CMS 6 solution here is the blog post mentioned above, http://blog.sigma.se/en/Development/Oskar-Zetterberg/Dates/2014/1/Create-dynamic-properties-programmatically/

Arve Systad
Arve Systad Aug 4, 2014 12:49 PM

One should probably be a bit careful by using Dynamic properties in new CMS 7/7.5 projects though - I have a strong impression that dynamic props will disappear in the not too distant future to be replaced by inline usage of content elements (blocks, pages, products, media, you name it).

Per Nergård (MVP)
Per Nergård (MVP) Aug 11, 2014 03:12 PM

@Arve: Im not so sure that dynamic properties will be disappear. You are probably thinking of Dynamic Content in the XHTML editor.

Apr 15, 2015 10:53 AM

Hi Per,

Where can I call SetupDynamicProperty() method?

Thanks.

error Please login to comment.
Latest blogs
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |