File Provider \u62bd\u8c61\u5c42<\/strong><\/div>\nfile prodivers \u5b9e\u73b0\u4e86 IFileProvider \u63a5\u53e3\uff0c\u5b83\u7684\u5b9e\u73b0\u5b50\u7c7b\u5927\u6982\u6709\u4e09\u5757: Physical,Embedded \u548c Composite \uff0c\u540c\u65f6\u8fd9\u4e2a\u63a5\u53e3\u63d0\u4f9b\u4e86\u53ef\u7528\u4e8e\u83b7\u53d6\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u7684\u76f8\u5173\u4fe1\u606f\u7684\u65b9\u6cd5\uff0c\u63a5\u53e3\u5b9a\u4e49\u5982\u4e0b\uff1a<\/p>\n
\r\npublic interface IFileProvider \r\n { \r\n IDirectoryContents GetDirectoryContents(string subpath); \r\n \r\n IFileInfo GetFileInfo(string subpath); \r\n \r\n IChangeToken Watch(string filter); \r\n }\r\n<\/pre>\n\u5982\u679c\u8981\u5b9e\u73b0 \u66f4\u6539\u901a\u77e5\uff0c\u8fd8\u9700\u8981\u7528 IChangeToken \u63a5\u53e3\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n
\r\npublic interface IChangeToken \r\n { \r\n bool ActiveChangeCallbacks { get; } \r\n \r\n bool HasChanged { get; } \r\n \r\n IDisposable RegisterChangeCallback(Action