私は以下を放出しようとしています:
これは、動的に発行されるクラスのプロパティとして含まれる構造体です。
public struct GeoPoint
{
public double? lat { get; set; }
public double? lon { get; set; }
}
私は次のクラスを放出する必要があります:
public class GeoPointOwner
{
public GeoPoint GeoPoint{get; set;}
public double? Getlat ()
{
return GeoPoint.lat;
}
}
メソッドGeoPointOwner.Getlatを適切に発行する方法がわかりません
これが私のコードです:
var mbGet = typeBuilder.DefineMethod("Getlat", MethodAttributes.Public, typeof(double?), Type.EmptyTypes);
var genGet = mbGet.GetILGenerator();
genGet.Emit(OpCodes.Ldarg_0);
//getMethodInfo below is MethodInfo of Getter of GeoPoint property
genGet.Emit(OpCodes.Call, getMethodInfo);
var getMethod = typeof(GeoPoint).GetProperty("lat").GetGetMethod(true);
//code emitted below fails when invoked
genGet.Emit(OpCodes.Callvirt, getMethod);
genGet.Emit(OpCodes.Stloc_0);
genGet.Emit(OpCodes.Ret);