문자열에서 클래스를 인스턴스화하는 방법에 대해 많은 질문을했지만 구조를 만드는 것과 관련하여 정보를 찾을 수 없었습니다.C#의 문자열에서 구조 만들기
는 그래서 같은 구조를 포함하는 클래스가 :
Public Structure callDetails
Public GUID As Guid
Public ringTime as Date
Public CBN As String
등
내가 정말로 원하는 모든 구조에서 필드 이름을 얻을 수 있습니다. 필드의 데이터를 조작하는 데 신경 쓰지 않습니다.
지금까지 나는 이것에 매우 가까워 질 수 있었다.
callDetails callTableDef= new callDetails();
Type tableType = callTableDef.GetType();
object tableStruct = (object)Activator.CreateInstance(tableType);
System.Reflection.FieldInfo[] fields = tableType.GetFields();
foreach (System.Reflection.FieldInfo field in fields)
Debug.WriteLine(field.Name + " = " + field.GetValue(tableStruct));
그러나 실제로 구조체의 인스턴스를 실제 이름으로 만들어야합니다. 나는이 같은 문자열을 전달 할 수 있도록하려면 :
Type tableType = System.Type.GetType("callDetails");
나는 Activator.CreateInstance로()에서 경우 ArgumentNullException를 얻을 수행 할 때
에 전달 된 값을 조회하기로 GetType을하지 않는다 문자열로 반환하고 형식을 반환합니까?
저는이 프로젝트가 시작되기 전까지 대부분 Java로 프로그래밍 된 C#을 처음 사용했습니다.
PascalCase !!!!!! – Will