OpenGraph
.NET Parser를 작성하지만 속성 바인딩에 걸렸습니다. 간단히 HTML 문서를 가져 와서 HtmlAgilityPack
을 사용하여 파싱합니다.C# 사용자 지정 속성 특성 반영
사용자 정의
public class OGVideoContainer
{
[OpenGraphAttribute("og:video:url")]
public string DefaultUrl { get; set; }
[OpenGraphAttribute("og:video:secure_url")]
public string SecureUrl { get; set; }
[OpenGraphAttribute("og:video:type")]
public string Type { get; set; }
[OpenGraphAttribute("og:video:width")]
public string Width { get; set; }
[OpenGraphAttribute("og:video:height")]
public string Height { get; set; }
[OpenGraphAttribute("og:video:url")]
public string Url { get; set; }
}
파서
public OGVideoContainer ParseVideo(HtmlDocument doc)
{
var result = new OGVideoContainer();
var parseableAttr = typeof(OGVideoContainer).GetProperties();
foreach (var prop in parseableAttr)
{
var ca = prop.GetCustomAttributes(true).ElementAtOrDefault(0) as OpenGraphAttribute;
if (doc.DocumentNode.SelectSingleNode(String.Format("/html/head/meta[@property='{0}']", ca.Name)) != null)
{
// i am stuck here how can i access the result.propery value?
}
}
return result;
}
public class OpenGraphAttribute : Attribute
{
public string Name { get; set; }
public OpenGraphAttribute(string name)
{
Name = name;
}
}
컨테이너 클래스 속성 : 그 후 나는 키 특정 OpenGraph
각 노드를 확인하려면
그러나 result.parameter 바인딩에 걸렸습니다. result.DefaultUrl
에 해당 사용자 지정 특성 이름 값을 할당해야합니다. 어떻게 할 수 있습니까?
도움 주셔서 감사합니다.