quickオプション
ワイルドカード対応リゾルバを作成するためにオーバーライドXmlResolverのがあります:
class WildCardResolver : XmlUrlResolver
{
public override Uri ResolveUri(Uri baseUri, string relativeUri)
{
try
{
DirectoryInfo di = new DirectoryInfo(baseUri.AbsolutePath); // TODO Check it is valid.
string combinedFilePath = Path.GetTempFileName();
using (FileStream combinedStream = new FileStream(combinedFilePath, FileMode.OpenOrCreate))
{
foreach (FileInfo fi in di.GetFiles(relativeUri))
{
using (FileStream fileStream = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read))
{
fileStream.CopyTo(combinedStream);
}
}
}
Uri absUri = new Uri(combinedFilePath);
return absUri;
}
catch(Exception ex)
{
//Log Exception
return base.ResolveUri(baseUri, relativeUri);
}
}
}
ワイルドカードはまた、すべての
で適用された場合に気づくためにやるべきことがたくさんがありますが、 BaseURIは、ソースXMLが
ファイル:// c:/myXMLRepository/myXML.xmlから
* inc.xml
を含み、今ベースURIは、ファイル// Cです:/temp/tmpA0.tmp
。
。
が
public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn)
を上書きする別の方法をtheresのが、そのによって課される他の問題がある...絶対URIではない、常になりますので:
は、あなたに
EDITを最高の幸運を祈って有効であり、XIncludingReaderはそれを試して検証します。