Arguments/ArgsParser.cs
(开头部分) 14KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
* Author: Kishore Reddy
* Url: http://commonlibrarynet.codeplex.com/
* Title: CommonLibrary.NET
* Copyright: � 2009 Kishore Reddy
* License: LGPL License
* LicenseUrl: http://commonlibrarynet.codeplex.com/license
* Description: A C# based .NET 3.5 Open-Source collection of reusable components.
* Usage: Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Collections;
using System.Text.RegularExpressions;
using System.Reflection;
namespace ComLib.Arguments
{
/// <summary>
/// Class providing utility methods for parsing a string or collection of arguments.
/// </summary>
public partial class Args
{
private static Func<string, List<string>> _stringParser;
/// <summary>
/// Initialize the string parser and substutions.
/// Args.InitServices((textargs) => ComLib.Parsing.LexArgs.ParseList(textargs), (arg) => ComLib.Subs.Substitutor.Substitute(arg));
/// </summary>
/// <param name="stringParser"></param>
/// <param name="substitutor"></param>
public static void InitServices(Func<string, List<string>> stringParser, Func<string, string> substitutor = null)
{
_stringParser = stringParser;
ArgsHelper.InitServices(substitutor);
}
/// <summary>
/// Parse the line into <see cref="Args"/> object.
/// </summary>
/// <param name="text">The line of text containing arguments to parse.</param>
/// <returns></returns>
public static BoolMessageItem<Args> Parse(string text)
{
if(string.IsNullOrEmpty(text)) return new BoolMessageItem<Args>(null, false, "No arguments provided.");
if(_stringParser == null) return new BoolMessageItem<Args>(null, false, "Parser for text based args not initialized.");
List<string> args = _stringParser(text);
return TryCatch(() => Parse(args.ToArray()));
}
后面还有 250 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
