# Reflection source The [Reflection source](xref:UnityEngine.Localization.SmartFormat.Extensions.ReflectionSource) is used to select using [.Net Reflection](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/reflection). Named placeholders are evaluated against the current object. The Reflection Source can be used to extract an object from a property, field or method. > [!NOTE] > When using a method, the method must be parameterless and not return void.
Example Smart String Arguments Result
The value is {gameObject.name} [!code-cs[](../../DocCodeSamples.Tests/SmartStringSamples.cs#args-reflection-1)] The value is Camera
You can call methods to modify values such as {0.ToUpper} [!code-cs[](../../DocCodeSamples.Tests/SmartStringSamples.cs#args-reflection-2)] You can call methods to modify values such as HELLO WORLD
My name is {Name} and I am {Age} years old. [!code-cs[](../../DocCodeSamples.Tests/SmartStringSamples.cs#args-reflection-3a)] [!code-cs[](../../DocCodeSamples.Tests/SmartStringSamples.cs#args-reflection-3b)] My name is Juan Pérez and I am 39 years old.
Mr {name.ToCharArray.0} {surname} [!code-cs[](../../DocCodeSamples.Tests/SmartStringSamples.cs#args-reflection-4)] Mr Y Taro
The following example shows how the `Person` instance could be provided as an argument. [!code-cs[](../../DocCodeSamples.Tests/SmartStringSamples.cs#args-reflection-5)]