87 {
88 if (frameworkName == null)
89 {
90 throw new ArgumentNullException("frameworkName");
91 }
92 if (frameworkName.Length == 0)
93 {
94 throw new ArgumentException(SR.Format(SR.net_emptystringcall,
"frameworkName"),
"frameworkName");
95 }
96 string[]
array = frameworkName.Split(
',');
98 {
100 }
103 {
105 }
106 bool flag = false;
108 for (
int i = 1;
i <
array.Length;
i++)
109 {
111 int num =
text.IndexOf(
'=');
112 if (num == -1 || num !=
text.LastIndexOf(
'='))
113 {
115 }
116 ReadOnlySpan<char> span =
text.AsSpan(0, num).Trim();
117 ReadOnlySpan<char>
input =
text.AsSpan(num + 1).Trim();
118 if (MemoryExtensions.Equals(span,
"Version",
StringComparison.OrdinalIgnoreCase))
119 {
120 flag = true;
122 {
124 }
125 try
126 {
128 }
129 catch (Exception innerException)
130 {
131 throw new ArgumentException(SR.Argument_FrameworkNameInvalidVersion,
"frameworkName", innerException);
132 }
133 }
134 else
135 {
136 if (!MemoryExtensions.Equals(span,
"Profile",
StringComparison.OrdinalIgnoreCase))
137 {
139 }
140 if (
input.Length > 0)
141 {
143 }
144 }
145 }
146 if (!flag)
147 {
148 throw new ArgumentException(SR.Argument_FrameworkNameMissingVersion,
"frameworkName");
149 }
150 }
readonly Version _version
readonly string _identifier
static Version Parse(string input)