перебирать классы т.е. бобы для asp.net - PullRequest
1 голос
/ 24 сентября 2008

Допустим, у меня есть класс, который хранит пользовательскую информацию вместе с геттерами и сеттерами, и она заполняется данными из файла XML. Как бы я перебрал все экземпляры этого класса, как вы бы делали с Java-бинами и библиотеками тегов?

Ответы [ 2 ]

1 голос
/ 24 сентября 2008

Для вывода форматированного HTML у вас есть несколько вариантов. То, что я, вероятно, сделал бы, это сделать свойство в коде позади, которое обращается к коллекции объектов, которые вы хотите перебрать. Затем я написал бы логику для их итерации и форматирования на самой странице .aspx. Например, страница .aspx:

[snip]
<body>
    <form id="form1" runat="server">
        <% Somethings.ForEach(s => { %>
            <h1><%=s.Name %></h1>
            <h2><%=s.Id %></h2>
        <% }); %>
    </form>
</body>
</html>

А потом код:

[snip]
public partial class _Default : System.Web.UI.Page
    {
        protected List<Something> Somethings { get; private set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            Somethings = GetSomethings(); // Or whatever populates the collection

        }
[snip]

Вы также можете посмотреть на использование элемента управления повторителем и установить источник данных для своей коллекции. Это почти та же идея, что и в приведенном выше коде, но я думаю, что этот способ более понятен (на мой взгляд).

0 голосов
/ 24 сентября 2008

Предполагается, что вы можете приобрести все экземпляры вашего класса и добавить их в общий список.

List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection();
foreach (YourClass instance in myObjects)
{
Response.Write(instance.PropertyName.ToString();
}

Если вы не хотите указывать каждое имя свойства, вы можете использовать Reflection (см. PropertyInfo) и делать это таким образом. Опять же, не уверен, что это было твоим намерением.

...