System.Dynamic расшифроконтрол возможен?
-
13-11-2019 - |
Вопрос
Я пытаюсь выяснить, как создать элемент управления веб-сервером, который в основном является развертыванием.
Желание - автоматически создать свойство на элементе управления, когда он создан в разметке ASPX.
Например:
<x:ExpandoControl someProperty="a value"></x:ExpandoControl>
.
где атрибут какой-то не существует как свойство на элементе управления.
Я также должен упомянуть, что я не нужен какой-либо функционал управления или Webcontrol.Мне просто нужно быть в состоянии объявить его в разметке с помощью Runat= «Сервером» (который в самом себе может потребовать его контроль, по крайней мере, это то, что я думаю).
Это возможно?Если так, как я могу начать?
большое спасибо.
Решение
Я думаю, что ваша первая ставка будет реализовать
.
public interface IAttributeAccessor
{
string GetAttribute(string key);
void SetAttribute(string key, string value);
}
Пашнер Page ASP.NET вызывает
Так, возможно, вы можете начать с
public class ExpandoControl : Control, IAttributeAccessor
{
IDictionary<string, object> _expando = new ExpandoObject();
public dynamic Expando
{
{
return _expando;
}
}
void IAttributeAccessor.SetValue(string key, string value)
{
_expando[key] = value;
}
string IAttributeAccessor.GetValue(string key)
{
object value;
if (_expando.TryGetValue(key, out value) && value != null)
return value.ToString();
else
return null;
}
}
.