Ho un metodo che interroga una pausa API dove eseguo una mappatura da JSON a un oggetto. Poiché la stringa di query e il tipo di oggetto I passano a questo metodo devono sempre corrispondere, volevo includere la stringa di query come stringa statica.Come posso associare una stringa statica a un tipo di oggetto C#
public class Root
{
public static string Query;
}
public class RootObject : Root, IRootObject
{
public D d { get; set; }
public static new string Query = "AccountSet";
}
public interface IRootObject
{
D d { get; }
}
public class RestClass
{
public void Connect<T>() where T : Root, IRootObject
{
T.Query <-- fails (not actual code. Just to show my problem)
}
}
In C# (o nella CLI in generale), la nozione di membri statici virtuali non esiste (sfortunatamente, IMO). Pertanto, quello che stai cercando di fare non può funzionare, dato che 'T.Query' (anche se fosse compilabile) non sarebbe polimorfico. –
È possibile scrivere il proprio attributo con parametro stringa per contrassegnare le classi. F.e. '[QueryName (" AccountSet ")] public class RootObject ...'. Quindi è possibile utilizzare la riflessione per estrarre i dati di stringa. –