Dreamine.MVVM.Generators 1.0.13
Dreamine.MVVM.Generators 프로젝트의 API와 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.MVVM.Generators.DreamineAutoWiringGenerator 클래스 참조sealed

DreamineModelAttribute, DreamineEventAttribute, DreaminePropertyAttribute가 적용된 필드를 기반으로 보조 프로퍼티 코드를 생성하는 증분 생성기입니다. 더 자세히 ...

Dreamine.MVVM.Generators.DreamineAutoWiringGenerator에 대한 상속 다이어그램 :
Dreamine.MVVM.Generators.DreamineAutoWiringGenerator에 대한 협력 다이어그램:

클래스

class  AttributeSymbolSet
 Attribute 심볼 집합을 나타냅니다. 더 자세히 ...
class  AutoWiringCandidate
 자동 생성 대상 필드 메타데이터를 나타냅니다. 더 자세히 ...

Public 멤버 함수

void Initialize (IncrementalGeneratorInitializationContext context)
 증분 생성기 파이프라인을 초기화합니다.

Private 타입

enum  CandidateKind { Model , Event , Property }
 생성 대상 종류를 나타냅니다. 더 자세히 ...

정적 Private 멤버 함수

static bool IsCandidateSyntax (SyntaxNode node)
 후보가 될 수 있는 구문인지 확인합니다.
static ? AutoWiringCandidate TryCreateCandidate (GeneratorSyntaxContext context, AttributeSymbolSet attributeSymbols)
 구문/시맨틱 정보를 바탕으로 생성 대상 후보를 만듭니다.
static void Emit (SourceProductionContext context, ImmutableArray< AutoWiringCandidate > candidates)
 수집된 후보를 기반으로 소스를 생성합니다.
static ? CandidateKind GetCandidateKind (IFieldSymbol fieldSymbol, AttributeSymbolSet attributeSymbols, out AttributeData? matchedAttribute)
 필드에 적용된 Attribute 종류를 판별합니다.
static ? string GetConfiguredPropertyName (AttributeData attribute)
 Attribute에 지정된 명시적 프로퍼티 이름을 가져옵니다.
static ? string ResolveGeneratedPropertyName (string fieldName, string? configuredPropertyName)
 생성할 프로퍼티 이름을 결정합니다.
static bool HasConflictingMember (INamedTypeSymbol typeSymbol, string memberName)
 이미 같은 이름의 멤버가 존재하는지 확인합니다.
static string BuildFileName (AutoWiringCandidate candidate)
 생성 파일 이름을 만듭니다.
static string BuildSource (AutoWiringCandidate candidate)
 생성 코드를 만듭니다.
static void AppendPropertyCode (StringBuilder builder, CandidateKind kind, IFieldSymbol fieldSymbol, string typeName, string fieldName, string propertyName)
 종류에 맞는 프로퍼티 코드를 생성합니다.
static void AppendLazyAccessPropertyCode (StringBuilder builder, IFieldSymbol fieldSymbol, string typeName, string fieldName, string propertyName, string initializerExpression)
 지연 초기화 기반 읽기 전용 프로퍼티 코드를 생성합니다.
static string Sanitize (string name)
 파일 이름에 안전한 문자열로 변환합니다.

정적 Private 속성

const string ModelAttributeMetadataName = "Dreamine.MVVM.Attributes.DreamineModelAttribute"
const string EventAttributeMetadataName = "Dreamine.MVVM.Attributes.DreamineEventAttribute"
const string PropertyAttributeMetadataName = "Dreamine.MVVM.Attributes.DreaminePropertyAttribute"

상세한 설명

DreamineModelAttribute, DreamineEventAttribute, DreaminePropertyAttribute가 적용된 필드를 기반으로 보조 프로퍼티 코드를 생성하는 증분 생성기입니다.

DreamineAutoWiringGenerator.cs 파일의 18 번째 라인에서 정의되었습니다.

멤버 열거형 문서화

◆ CandidateKind

생성 대상 종류를 나타냅니다.

열거형 멤버
Model 
Event 
Property 

DreamineAutoWiringGenerator.cs 파일의 437 번째 라인에서 정의되었습니다.

438 {
439 Model,
440 Event,
441 Property
442 }

멤버 함수 문서화

◆ AppendLazyAccessPropertyCode()

void Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AppendLazyAccessPropertyCode ( StringBuilder builder,
IFieldSymbol fieldSymbol,
string typeName,
string fieldName,
string propertyName,
string initializerExpression )
inlinestaticprivate

지연 초기화 기반 읽기 전용 프로퍼티 코드를 생성합니다.

매개변수
builder대상 문자열 빌더입니다.
fieldSymbol원본 필드 심볼입니다.
typeName필드 타입 이름입니다.
fieldName필드 이름입니다.
propertyName프로퍼티 이름입니다.
initializerExpression초기화 식입니다.

DreamineAutoWiringGenerator.cs 파일의 392 번째 라인에서 정의되었습니다.

399 {
400 builder.AppendLine(" /// <summary>");
401 builder.AppendLine(" /// 생성된 참조 프로퍼티입니다.");
402 builder.AppendLine(" /// </summary>");
403
404 if (fieldSymbol.IsReadOnly || fieldSymbol.Type.IsValueType)
405 {
406 builder.AppendLine(" public " + typeName + " " + propertyName + " => " + fieldName + ";");
407 return;
408 }
409
410 builder.AppendLine(" public " + typeName + " " + propertyName);
411 builder.AppendLine(" {");
412 builder.AppendLine(" get");
413 builder.AppendLine(" {");
414 builder.AppendLine(" if (" + fieldName + " is null)");
415 builder.AppendLine(" {");
416 builder.AppendLine(" " + fieldName + " = " + initializerExpression + ";");
417 builder.AppendLine(" }");
418 builder.AppendLine();
419 builder.AppendLine(" return " + fieldName + ";");
420 builder.AppendLine(" }");
421 builder.AppendLine(" }");
422 }

다음에 의해서 참조됨 : AppendPropertyCode().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AppendPropertyCode()

void Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AppendPropertyCode ( StringBuilder builder,
CandidateKind kind,
IFieldSymbol fieldSymbol,
string typeName,
string fieldName,
string propertyName )
inlinestaticprivate

종류에 맞는 프로퍼티 코드를 생성합니다.

매개변수
builder대상 문자열 빌더입니다.
kind생성 대상 종류입니다.
fieldSymbol원본 필드 심볼입니다.
typeName필드 타입 이름입니다.
fieldName필드 이름입니다.
propertyName생성할 프로퍼티 이름입니다.

DreamineAutoWiringGenerator.cs 파일의 340 번째 라인에서 정의되었습니다.

347 {
348 switch (kind)
349 {
350 case CandidateKind.Property:
351 builder.AppendLine(" /// <summary>");
352 builder.AppendLine(" /// 생성된 프로퍼티입니다.");
353 builder.AppendLine(" /// </summary>");
354 builder.AppendLine(" public " + typeName + " " + propertyName);
355 builder.AppendLine(" {");
356 builder.AppendLine(" get => " + fieldName + ";");
357 builder.AppendLine(" set => SetProperty(ref " + fieldName + ", value);");
358 builder.AppendLine(" }");
359 break;
360
361 case CandidateKind.Model:
362 AppendLazyAccessPropertyCode(
363 builder,
364 fieldSymbol,
365 typeName,
366 fieldName,
367 propertyName,
368 "new " + typeName + "()");
369 break;
370
371 case CandidateKind.Event:
372 AppendLazyAccessPropertyCode(
373 builder,
374 fieldSymbol,
375 typeName,
376 fieldName,
377 propertyName,
378 "DMContainer.Resolve<" + typeName + ">()");
379 break;
380 }
381 }

다음을 참조함 : AppendLazyAccessPropertyCode().

다음에 의해서 참조됨 : BuildSource().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildFileName()

string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.BuildFileName ( AutoWiringCandidate candidate)
inlinestaticprivate

생성 파일 이름을 만듭니다.

매개변수
candidate대상 후보입니다.
반환값
생성 파일 이름입니다.

DreamineAutoWiringGenerator.cs 파일의 278 번째 라인에서 정의되었습니다.

279 {
280 string namespaceName = candidate.ContainingType.ContainingNamespace.IsGlobalNamespace
281 ? "Global"
282 : Sanitize(candidate.ContainingType.ContainingNamespace.ToDisplayString());
283
284 return namespaceName + "_" +
285 candidate.ContainingType.Name + "_" +
286 candidate.GeneratedPropertyName + "_AutoWiring.g.cs";
287 }

다음을 참조함 : Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.ContainingType, Sanitize().

다음에 의해서 참조됨 : Emit().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildSource()

string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.BuildSource ( AutoWiringCandidate candidate)
inlinestaticprivate

생성 코드를 만듭니다.

매개변수
candidate생성 대상 후보입니다.
반환값
생성된 C# 소스 문자열입니다.

DreamineAutoWiringGenerator.cs 파일의 294 번째 라인에서 정의되었습니다.

295 {
296 string namespaceName = candidate.ContainingType.ContainingNamespace.IsGlobalNamespace
297 ? string.Empty
298 : candidate.ContainingType.ContainingNamespace.ToDisplayString();
299
300 string className = candidate.ContainingType.Name;
301 string typeName = candidate.FieldSymbol.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
302 string fieldName = candidate.FieldSymbol.Name;
303 string propertyName = candidate.GeneratedPropertyName;
304
305 StringBuilder builder = new StringBuilder();
306 builder.AppendLine("// <auto-generated />");
307 builder.AppendLine("#nullable enable");
308 builder.AppendLine("using Dreamine.MVVM.Core;");
309
310 if (!string.IsNullOrWhiteSpace(namespaceName))
311 {
312 builder.AppendLine("namespace " + namespaceName);
313 builder.AppendLine("{");
314 }
315
316 builder.AppendLine(" public partial class " + className);
317 builder.AppendLine(" {");
318
319 AppendPropertyCode(builder, candidate.Kind, candidate.FieldSymbol, typeName, fieldName, propertyName);
320
321 builder.AppendLine(" }");
322
323 if (!string.IsNullOrWhiteSpace(namespaceName))
324 {
325 builder.AppendLine("}");
326 }
327
328 return builder.ToString();
329 }

다음을 참조함 : AppendPropertyCode(), Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.ContainingType, Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.FieldSymbol, Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.GeneratedPropertyName, Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.Kind.

다음에 의해서 참조됨 : Emit().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Emit()

void Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.Emit ( SourceProductionContext context,
ImmutableArray< AutoWiringCandidate > candidates )
inlinestaticprivate

수집된 후보를 기반으로 소스를 생성합니다.

매개변수
context소스 출력 컨텍스트입니다.
candidates수집된 후보 목록입니다.

DreamineAutoWiringGenerator.cs 파일의 142 번째 라인에서 정의되었습니다.

145 {
146 if (candidates.IsDefaultOrEmpty)
147 {
148 return;
149 }
150
151 foreach (AutoWiringCandidate candidate in candidates)
152 {
153 if (HasConflictingMember(candidate.ContainingType, candidate.GeneratedPropertyName))
154 {
155 continue;
156 }
157
158 string source = BuildSource(candidate);
159 string fileName = BuildFileName(candidate);
160
161 context.AddSource(fileName, SourceText.From(source, Encoding.UTF8));
162 }
163 }

다음을 참조함 : BuildFileName(), BuildSource(), Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.ContainingType, Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AutoWiringCandidate.GeneratedPropertyName, HasConflictingMember().

다음에 의해서 참조됨 : Initialize().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCandidateKind()

? CandidateKind Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.GetCandidateKind ( IFieldSymbol fieldSymbol,
AttributeSymbolSet attributeSymbols,
out AttributeData? matchedAttribute )
inlinestaticprivate

필드에 적용된 Attribute 종류를 판별합니다.

매개변수
fieldSymbol검사할 필드 심볼입니다.
attributeSymbols비교할 Attribute 심볼 집합입니다.
matchedAttribute일치한 Attribute 데이터입니다.
반환값
일치한 종류가 있으면 해당 CandidateKind를 반환하고, 아니면 null을 반환합니다.

DreamineAutoWiringGenerator.cs 파일의 172 번째 라인에서 정의되었습니다.

176 {
177 foreach (AttributeData attribute in fieldSymbol.GetAttributes())
178 {
179 INamedTypeSymbol? attributeClass = attribute.AttributeClass;
180 if (attributeClass is null)
181 {
182 continue;
183 }
184
185 if (SymbolEqualityComparer.Default.Equals(attributeClass, attributeSymbols.ModelAttribute))
186 {
187 matchedAttribute = attribute;
188 return CandidateKind.Model;
189 }
190
191 if (SymbolEqualityComparer.Default.Equals(attributeClass, attributeSymbols.EventAttribute))
192 {
193 matchedAttribute = attribute;
194 return CandidateKind.Event;
195 }
196
197 if (SymbolEqualityComparer.Default.Equals(attributeClass, attributeSymbols.PropertyAttribute))
198 {
199 matchedAttribute = attribute;
200 return CandidateKind.Property;
201 }
202 }
203
204 matchedAttribute = null;
205 return null;
206 }

다음에 의해서 참조됨 : TryCreateCandidate().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetConfiguredPropertyName()

? string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.GetConfiguredPropertyName ( AttributeData attribute)
inlinestaticprivate

Attribute에 지정된 명시적 프로퍼티 이름을 가져옵니다.

매개변수
attribute검사할 Attribute 데이터입니다.
반환값
설정된 이름이 있으면 반환하고, 없으면 null을 반환합니다.

DreamineAutoWiringGenerator.cs 파일의 213 번째 라인에서 정의되었습니다.

214 {
215 foreach (KeyValuePair<string, TypedConstant> namedArgument in attribute.NamedArguments)
216 {
217 if (namedArgument.Key == "PropertyName" &&
218 namedArgument.Value.Value is string namedValue &&
219 !string.IsNullOrWhiteSpace(namedValue))
220 {
221 return namedValue;
222 }
223 }
224
225 if (attribute.ConstructorArguments.Length > 0 &&
226 attribute.ConstructorArguments[0].Value is string ctorValue &&
227 !string.IsNullOrWhiteSpace(ctorValue))
228 {
229 return ctorValue;
230 }
231
232 return null;
233 }

다음에 의해서 참조됨 : TryCreateCandidate().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ HasConflictingMember()

bool Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.HasConflictingMember ( INamedTypeSymbol typeSymbol,
string memberName )
inlinestaticprivate

이미 같은 이름의 멤버가 존재하는지 확인합니다.

매개변수
typeSymbol검사 대상 타입입니다.
memberName확인할 멤버 이름입니다.
반환값
같은 이름의 멤버가 있으면 true이고, 아니면 false입니다.

DreamineAutoWiringGenerator.cs 파일의 268 번째 라인에서 정의되었습니다.

269 {
270 return typeSymbol.GetMembers(memberName).Length > 0;
271 }

다음에 의해서 참조됨 : Emit().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Initialize()

void Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.Initialize ( IncrementalGeneratorInitializationContext context)
inline

증분 생성기 파이프라인을 초기화합니다.

매개변수
context생성기 초기화 컨텍스트입니다.

DreamineAutoWiringGenerator.cs 파일의 28 번째 라인에서 정의되었습니다.

29 {
30 IncrementalValueProvider<AttributeSymbolSet> attributeSymbolsProvider =
31 context.CompilationProvider.Select(
32 static (compilation, _) => new AttributeSymbolSet(
33 compilation.GetTypeByMetadataName(ModelAttributeMetadataName),
34 compilation.GetTypeByMetadataName(EventAttributeMetadataName),
35 compilation.GetTypeByMetadataName(PropertyAttributeMetadataName)));
36
37 IncrementalValueProvider<ImmutableArray<AutoWiringCandidate>> candidatesProvider =
38 context.SyntaxProvider
39 .CreateSyntaxProvider(
40 predicate: static (node, _) => IsCandidateSyntax(node),
41 transform: static (syntaxContext, _) => syntaxContext)
42 .Combine(attributeSymbolsProvider)
43 .Select(static (pair, _) => TryCreateCandidate(pair.Left, pair.Right))
44 .Where(static candidate => candidate is not null)
45 .Select(static (candidate, _) => candidate!)
46 .Collect();
47
48 context.RegisterSourceOutput(candidatesProvider, static (sourceProductionContext, candidates) =>
49 {
50 Emit(sourceProductionContext, candidates);
51 });
52 }

다음을 참조함 : Emit(), EventAttributeMetadataName, IsCandidateSyntax(), ModelAttributeMetadataName, PropertyAttributeMetadataName, TryCreateCandidate().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ IsCandidateSyntax()

bool Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.IsCandidateSyntax ( SyntaxNode node)
inlinestaticprivate

후보가 될 수 있는 구문인지 확인합니다.

매개변수
node검사할 구문 노드입니다.
반환값
후보 구문이면 true이고, 아니면 false입니다.

DreamineAutoWiringGenerator.cs 파일의 59 번째 라인에서 정의되었습니다.

60 {
61 if (node is not VariableDeclaratorSyntax variable)
62 {
63 return false;
64 }
65
66 if (variable.Parent is not VariableDeclarationSyntax variableDeclaration)
67 {
68 return false;
69 }
70
71 if (variableDeclaration.Parent is not FieldDeclarationSyntax fieldDeclaration)
72 {
73 return false;
74 }
75
76 return fieldDeclaration.AttributeLists.Count > 0;
77 }

다음에 의해서 참조됨 : Initialize().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ResolveGeneratedPropertyName()

? string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.ResolveGeneratedPropertyName ( string fieldName,
string? configuredPropertyName )
inlinestaticprivate

생성할 프로퍼티 이름을 결정합니다.

매개변수
fieldName원본 필드 이름입니다.
configuredPropertyName명시적으로 지정된 프로퍼티 이름입니다.
반환값
유효한 프로퍼티 이름이면 반환하고, 아니면 null을 반환합니다.

DreamineAutoWiringGenerator.cs 파일의 241 번째 라인에서 정의되었습니다.

242 {
243 if (!string.IsNullOrWhiteSpace(configuredPropertyName))
244 {
245 return configuredPropertyName;
246 }
247
248 string normalized = fieldName.TrimStart('_');
249 if (string.IsNullOrWhiteSpace(normalized))
250 {
251 return null;
252 }
253
254 if (normalized.Length == 1)
255 {
256 return normalized.ToUpperInvariant();
257 }
258
259 return char.ToUpperInvariant(normalized[0]) + normalized.Substring(1);
260 }

다음에 의해서 참조됨 : TryCreateCandidate().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Sanitize()

string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.Sanitize ( string name)
inlinestaticprivate

파일 이름에 안전한 문자열로 변환합니다.

매개변수
name원본 문자열입니다.
반환값
정리된 문자열입니다.

DreamineAutoWiringGenerator.cs 파일의 429 번째 라인에서 정의되었습니다.

430 {
431 return name.Replace('.', '_').Replace('+', '_');
432 }

다음에 의해서 참조됨 : BuildFileName().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryCreateCandidate()

? AutoWiringCandidate Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.TryCreateCandidate ( GeneratorSyntaxContext context,
AttributeSymbolSet attributeSymbols )
inlinestaticprivate

구문/시맨틱 정보를 바탕으로 생성 대상 후보를 만듭니다.

매개변수
context구문 분석 컨텍스트입니다.
attributeSymbols사용할 Attribute 심볼 집합입니다.
반환값
유효한 후보이면 해당 모델을 반환하고, 아니면 null을 반환합니다.

DreamineAutoWiringGenerator.cs 파일의 85 번째 라인에서 정의되었습니다.

88 {
89 if (attributeSymbols.IsIncomplete)
90 {
91 return null;
92 }
93
94 if (context.Node is not VariableDeclaratorSyntax variable)
95 {
96 return null;
97 }
98
99 if (context.SemanticModel.GetDeclaredSymbol(variable) is not IFieldSymbol fieldSymbol)
100 {
101 return null;
102 }
103
104 if (fieldSymbol.ContainingType is null)
105 {
106 return null;
107 }
108
109 // 1차 버전에서는 중첩 타입은 제외
110 if (fieldSymbol.ContainingType.ContainingType is not null)
111 {
112 return null;
113 }
114
115 AttributeData? matchedAttribute;
116 CandidateKind? kind = GetCandidateKind(fieldSymbol, attributeSymbols, out matchedAttribute);
117 if (kind is null || matchedAttribute is null)
118 {
119 return null;
120 }
121
122 string? configuredPropertyName = GetConfiguredPropertyName(matchedAttribute);
123 string? generatedPropertyName = ResolveGeneratedPropertyName(fieldSymbol.Name, configuredPropertyName);
124
125 if (string.IsNullOrWhiteSpace(generatedPropertyName))
126 {
127 return null;
128 }
129
130 return new AutoWiringCandidate(
131 fieldSymbol,
132 fieldSymbol.ContainingType,
133 kind.Value,
134 generatedPropertyName!);
135 }

다음을 참조함 : GetCandidateKind(), GetConfiguredPropertyName(), Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.AttributeSymbolSet.IsIncomplete, ResolveGeneratedPropertyName().

다음에 의해서 참조됨 : Initialize().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ EventAttributeMetadataName

const string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.EventAttributeMetadataName = "Dreamine.MVVM.Attributes.DreamineEventAttribute"
staticprivate

DreamineAutoWiringGenerator.cs 파일의 21 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Initialize().

◆ ModelAttributeMetadataName

const string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.ModelAttributeMetadataName = "Dreamine.MVVM.Attributes.DreamineModelAttribute"
staticprivate

DreamineAutoWiringGenerator.cs 파일의 20 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Initialize().

◆ PropertyAttributeMetadataName

const string Dreamine.MVVM.Generators.DreamineAutoWiringGenerator.PropertyAttributeMetadataName = "Dreamine.MVVM.Attributes.DreaminePropertyAttribute"
staticprivate

DreamineAutoWiringGenerator.cs 파일의 22 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Initialize().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: