У меня есть два типа профилей:
TeamPlayerPage.cs & TeamStaffMemberPage
В моем коде (который является решением Umbraco) я создал два метода, которые получают и создают набор профилей, например
GetPlayerProfiles(TeamPlayersLandingPage teamPlayersPage)
GetStaffProfiles(TeamStaffLandingPage staffMembersPage)
В каждом из вышеперечисленных методов я создаю SponsorListItem, чтобы связать спонсора с профилем. Пример ниже
private SponsorListItem GetPlayerSponsor(TeamPlayerPage teamPlayerPage)
{
if (teamPlayerPage.Sponsor == null)
return null;
var sponsorPage = teamPlayerPage.Sponsor as SponsorPage;
var sponsor = new SponsorListItem()
{
Heading = sponsorPage.Heading,
Url = sponsorPage.Url,
ListingImgUrl = sponsorPage.Image != null ? sponsorPage.GetCropUrl("image", "360x152(listing)") : Global.PlaceholderImage.GenericListingItem,
KeySponsor = sponsorPage.KeySponsor
};
return sponsor;
}
Логи спонсора c точно такие же для каждого типа, поэтому я хотел бы создать один общий c метод, например GetProfileSponsor (T profilePage), а не два (см. Ниже) Цель состоит в том, чтобы иметь возможность передавать либо TeamPlayerPage, либо TeamStaffMemberPage в общий метод c и иметь его строго типизированный, чтобы я мог получить доступ к его свойствам.
private SponsorListItem GetPlayerSponsor(TeamPlayerPage teamPlayerPage)
private SponsorListItem GetStaffSponsor(TeamStaffMemberPage staffMembersPage)
Я создал следующее, но я не совсем уверен, как сделать параметр T profilePage строго типизированным по сравнению с тем, что передается (если это возможно)
Я немного искал, но изо всех сил пытался понять концепцию. Может ли кто-нибудь указать мне правильное направление?
Спасибо
Пол