# IFileDataEntry

> Marks a resource entry whose stored value is plain data that round-trips through JSON, so a file-backed table provider can export it to a data file and rebuild it at runtime without shipping the authored table asset.

## Definition

* **Type:** Interface
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule

```csharp
public interface IFileDataEntry : IResourceEntry
```

## Remarks

An entry that implements this interface serializes losslessly through [JsonUtility](/engine/6000.7/script-reference/unityengine/jsonutility.md): it holds no [Object](/engine/6000.7/script-reference/unityengine/object.md) references, and whatever it points at is reachable in a player on its own, such as a Resources path or an Addressables address supplied by a package. A file-backed provider writes these entries into its data files; a table whose entries do not all satisfy this contract keeps its asset in the build so the remaining references survive. Per-entry [IResourceEntry.Metadata](/engine/6000.7/script-reference/unity/localization/iresourceentry/metadata.md) does not round-trip through file data. [ResourceAssetEntry](/engine/6000.7/script-reference/unity/localization/resourceassetentry.md) implements this because it stores a Resources path, while [AssetEntry](/engine/6000.7/script-reference/unity/localization/assetentry.md) does not, because it holds a direct object reference.

Additional Resources: [IResourceEntry](/engine/6000.7/script-reference/unity/localization/iresourceentry.md), [ResourceAssetEntry](/engine/6000.7/script-reference/unity/localization/resourceassetentry.md), [AssetEntry](/engine/6000.7/script-reference/unity/localization/assetentry.md)

Check whether an entry can be exported to a localization data file.

## Examples

```csharp
using Unity.Localization;
using UnityEngine;

namespace Unity.Localization.Samples
{
    public class IFileDataEntryOverviewExample
    {
        public void Run()
        {
            IResourceEntry resourceEntry = new ResourceAssetEntry(1) { Default = "Icons/Flag" };
            IResourceEntry directEntry = new AssetEntry(2);

            Debug.Log(resourceEntry is IFileDataEntry);  // True: stores a Resources path
            Debug.Log(directEntry is IFileDataEntry);     // False: holds a direct object reference
        }
    }
}
```

## Inheritance

**Inherited Members:**

* [IResourceEntry.KeyId()](/engine/6000.7/script-reference/unity/localization/iresourceentry/keyid.md)
* [IResourceEntry.Metadata()](/engine/6000.7/script-reference/unity/localization/iresourceentry/metadata.md)
* [IResourceEntry.Table()](/engine/6000.7/script-reference/unity/localization/iresourceentry/table.md)
* [IResourceEntry.SharedEntry()](/engine/6000.7/script-reference/unity/localization/iresourceentry/sharedentry.md)
