Accessing c# class properties like javascript language would make life a lot easier.
How we can do it in C#?
For example:
someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);
r.zarei
Here is how you can enable property-bag-like functionality in your classes by adding a few lines of code:
partial class SomeClass
{
private static readonly PropertyDescriptorCollection LogProps = TypeDescriptor.GetProperties(typeof(SomeClass));
public object this[string propertyName]
{
get { return LogProps[propertyName].GetValue(this); }
set { LogProps[propertyName].SetValue(this, value); }
}
}
This code would work
dynamic user= new ExpandoObject();
user.name = "Anonymous";
user.id=1234
user.address="12 broad way"
user.State="NY"
import System.Dynamic namespace.
dynamic
keyword can be used instead
dynamic foo = ...
foo.Property = "simple string";
Console.WriteLine(foo.Property);
You could derive every single class from Dictionary<string, object>
. But then, you could simply take JavaScript instead of misusing C#.
来源:https://stackoverflow.com/questions/16131180/property-bag-for-c-sharp-class