C# 속성PropertyInfo의 setvalue 메서드
6464 단어 C#
public virtual void SetValue (object obj, object value, object[] index);
매개 변수obj
Object
속성 값이 설정된 객체입니다.value Object
새 속성 값입니다.index Object[]
색인화된 속성의 선택적 색인 값입니다.색인화되지 않은 속성에 대해서는 이 값이null이어야 합니다.이루어지다SetValue(Object, Object, Object[])
유난히
ArgumentException
index 그룹은 필요한 매개 변수 형식을 포함하지 않습니다.이 속성의 set 값 함수를 찾을 수 없습니다.
4
TargetException
Windows Application 스토어에서 사용할 수 있는.NET 또는 마이그레이션 가능 라이브러리에서 Exception 캡처로 변경됩니다.
이 대상은 목표 유형과 일치하지 않거나, 어떤 속성은 실례 속성이지만 obj는null입니다.TargetParameterCountException index의 매개변수 수와 색인 속성에 사용된 매개변수 수가 일치하지 않습니다.
MethodAccessException
Windows Application 스토어에서 사용할 수 있는.NET 또는 마이그레이션 가능 라이브러리에서 기본 클래스 예외 캡처 MemberAccessException으로 변경합니다.
불법 접근 클래스의 사유나 보호 방법을 시도합니다.TargetInvocationException에서 속성 값을 설정하는 동안 오류가 발생했습니다.예를 들어, 색인 속성에 지정된 색인 값이 범위를 벗어납니다.InnerException 속성은 오류의 원인을 나타냅니다.
예.
Dictionary<string, string> dic = new Dictionary<string, string>();
foreach (Control control in this.Controls )// ,
{
if (control is TextBox ||control is ComboBox ||control is DateTimePicker )
{
dic.Add (control.Name, control.Text);
}
}
PropertyInfo[] propertys = incomingnews.GetType().GetProperties();
foreach (PropertyInfo property in propertys)// propertyinfo , incomingnews 。
{
for (int i = 0; i<dic.Count; i++)
{
property.SetValue(incomingnews, dic[property.Name].ToString(), null);
}
}
이전에 작은 오류가 있었는데, 나중에 오류 알림을 보았습니다. "index 그룹은 필요한 매개 변수 형식을 포함하지 않습니다. 이 속성의 set 값 함수를 찾을 수 없습니다. - 또는-value는PropertyType 형식으로 변환할 수 없습니다."자신이 값을 부여하고 싶은 실체 클래스가 실체의 속성이 아니라 실체의 필드라는 것을 발견하기 때문에 setvalue 방법은 내가 부여하고 싶은 필드를 포착하지 못한다. 이 필드를 자동 속성으로 설정하면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.