어떻게 문제가있는 것 같아요 SitecoreFieldImageMapper 이미지에 ImageField지도. 높이기 높이, 너비 및 Alt은 공공의 재산으로 사용됩니다. 우리는 반사를 통해 그들에 보면 우리는 그것의 값 필드에서 직접하지 얻을 것을 볼 수 있습니다 :
public string Alt
{
get
{
string text = base.GetAttribute("alt");
if (text.Length == 0)
{
Item item = this.MediaItem;
if (item != null)
{
MediaItem mediaItem = item;
text = mediaItem.Alt;
if (text.Length == 0)
{
text = item["Alt"];
}
}
}
return text;
}
set
{
base.SetAttribute("alt", value);
}
}
을 필드 값이 포함되지 않은 경우 ("고도"에 대한 예를 : 경우 (text.Length == 0)) 연결된 MediaItem에서 값을받습니다. 필드를 저장 한 후 높이를, 너비 및 Alt을 미디어 라이브러리 항목에 추가하게합니다. 확인을해야 Alt 키 속성 모든 것을
int height = 0;
if(int.TryParse(field.GetAttribute("height"), out height))
{
img.Height = height;
}
int width = 0;
if(int.TryParse(field.GetAttribute("width"), out width))
{
img.Width = width;
}
img.Alt = field.GetAttribute("alt");
: 직접 얻는 속성이 아닌 속성의 사용과
int height = 0;
int.TryParse(field.Height, out height);
int width = 0;
int.TryParse(field.Width, out width);
img.Alt = field.Alt;
img.Height = height;
img.Width = width;
:
는이 코드를 대체 할 시도 할 수이 문제를 해결하려면. 그들이 Null 허용하지 않습니다 나는 GlassMapper이
폭 당신은 설정하지 않은
높이와 이미지를 처리하는 방법을 확실하지 오전하지만
폭 및
높이에 문제가있을 수 있습니다.
사용자 지정 ImageMapper를 만들고 대답 에서처럼 속성을 업데이트하거나 실제로 해당 코드를 추가 할 위치를 제안 하시겠습니까? –
예, 문제가 있으므로 사용자 지정 ImageMapper를 만드는 것이 좋습니다. 구성 파일을 사용하여 ImageMapper를 사용하도록 구성 할 수 있는지 확실하지 않습니다.그러나 GlassMapper는 오픈 소스이기 때문에 GitHub에서 소스를 포크하고 새로운 ImageMapper로 새로운 어셈블리를 만들 수 있습니다. https://github.com/mikeedwards83/Glass.Mapper – Anton
Repo와 건물을 복제하는 대신,'SitecoreFieldImageMapper'를 상속 받고 get 메소드를 구현하여 재정의하고'CreateResolver'에 등록하십시오 : https : // jammykam .wordpress.com/2015/11/09/custom-glass-mapper-data-handlers-part-2/다음은 필요에 따라 사용할 수 있습니다. 기사의 part-1도 꼭 읽으십시오. – jammykam