Sto realizzando un software di rendering e voglio rendere estensibili gli strumenti che include. Ho creato un'interfaccia utente che consente all'utente di scrivere funzioni C # personalizzate per i valori di fusione. Le funzioni (e i relativi valori / costanti) vengono aggiunte a una classe e compilate utilizzando CodeDom e da lì viene utilizzata la funzione di fusione. Le funzioni devono avere la firma:
public float Blend(float baseValue, float value);
Il problema che sto avendo è che qualcuno potrebbe scrivere facilmente uno script che fa ogni sorta di cose malevole. Sanno che questa funzione di fusione è il punto di ingresso, ma potrebbero inserire qualsiasi tipo di codice. C'è un modo per limitare quali assembly sono disponibili al compilatore CodeDom? Ad esempio, è possibile inserire nella lista nera o nella whitelist alcuni assembly? Posso impedire allo script di accedere a System.IO ad esempio?
Saluti e grazie in anticipo.