I would go for the xml using XDocument.
I would also create a Class that holds the profile Data.
One for the Application.
One for the Function(s).
And one class or enum for the permision of the function(s).
So the final class would look something like this:
public class Profile{
List<Application> apps = new List<Application>;
}
So the xml would be something like this:
<Profiles>
<Profile>
<Application>"myApp"
<Funtion>
<Permision></Permision>
</Function>
</Application>
</Profile>
</Profiles>
So you could use
XLINQ
to get the datas. Ex to get all the functions of a given Application:
XDocument xdoc = XDocument.Load("YourFileName");
var myAppFunction = xdoc.Elements("Profiles").Elements("Profile").
Elements("Application").
Where(n=>n.Value=="myApp").Elements("Function");
You said that it failed. How? Why? What?