Comment obtenir la ressource Uri d'une ressource intégrée?Comment obtenir la ressource Uri d'une ressource intégrée?
J'ai une méthode comme ci-dessous qui valide un fichier XML par rapport à un fichier xsd. Cette méthode est utilisée dans un MSTest:
public static string Validate(string xml, string relativeXsdFilePath)
{
var schemas = new XmlSchemaSet();
// relativeXsdFilePath like 'TestData.Xsd.XsdFile1.xsd'
var schemaUri = ResourceHelper.GetPath(relativeXsdFilePath);
schemas.Add("", schemaUri);
XDocument doc = XDocument.Load(new StringReader(xml));
string msg = null;
doc.Validate(schemas, (o, e) =>
{
msg = e.Message;
});
return msg;
}
Et je mettre en œuvre la méthode ci-dessous sans succès jusqu'à présent !:
public static string GetPath(string relativeFileName)
{
var assemblyName = new AssemblyName(Assembly.GetExecutingAssembly().FullName).Name;
var resourceName = GetResourceName(relativeFileName);
// resource name would be like 'ProjectName.UnitTests.TestData.Xsd.profile.xsd'
var result = string.Format("/{0};component/{1}", assemblyName, resourceName);
return result;
}
Mon XSD est situé ici:
ProjectRoot
---TestData
------Xsd
---------XsdFile1.xsd
merci mais cela renvoie juste le nom de la ressource. Il n'est pas possible d'ajouter juste le nom à la collection schemas.Add(). cela nécessite un chemin complet. –