Доступ к свойствам класса без создания экземпляра класса

#c# #blazor

#c# #blazor

Вопрос:

Я хочу получить доступ к свойствам класса без использования экземпляра класса. Мой сервис:

 public async Task<MovieDataDetail> GetAllMovieInfo(string title, string lang = "ru")
        {
            var results = await _client.SearchMovieAsync(title, lang);
            var data = results.Results.FirstOrDefault(p => p.Title == title);

            return new MovieDataDetail
            {
                Id = data.Id,
                Title = data.Title,
                OriginalTitle = data.OriginalTitle,
                Overview = data.Overview,
                ReleaseDate = data.ReleaseDate
            };
        }
 

Он записывает данные в свойства

Я хотел бы использовать эти реквизиты на клиенте, но я не знаю, как это сделать, не создавая экземпляр класса. Я бы хотел сделать что-то подобное: <div><h1>@MovieDataDetail.Overview</h1></div>

Если я создам экземпляр MovieDataDetail , Overview будет null

Комментарии:

1. Учитывая, что обзор, по-видимому, поступает из базы данных, как вы собираетесь извлекать / отображать его, не запрашивая базу данных?

2. @canton7 нет, я не использую никакую базу данных

Ответ №1:

Это выглядит как простая проблема управления объектами.

Вместо создания (нового) экземпляра просто присвоите результат переменной на вашей странице:

 private MovieDataDetail movieDetail = null;

...
   movieDetail = await GetAllMovieInfo(...);
 

и в разделе разметки:

 @if(movieDetail != null)
{
   <div><h1>@movieDetail.Overview</h1></div>
}
 

Комментарии:

1. У меня другая ошибка — исключение System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.

2. Вы заметили @if() ? Я добавил это чуть позже.

3. о, теперь это работает. Странные вещи.. большое спасибо